public void Populate(params TimerSequenceItem[] items) { Items = new SelectionList<TimerSequenceItem>(); Items.AddRange(items); Timer = new ActionTimer(Items[0].Time, () => { if (Items.IsNextAvailable()) { Items.Next(); Timer.TimeLimit = Items.CurrentValue.Time; Timer.Reset(); Timer.Start(); } else { if (FinishedCallback != null) { FinishedCallback(); return; } } Items.CurrentValue.Callback(); }); }