В любом случае, чтобы расширить раскадровку. Дети? - PullRequest
0 голосов
/ 29 января 2011

Есть ли способ расширить Storyboard.Children, чтобы получить .AddRange вместо .Add?

1 Ответ

4 голосов
/ 29 января 2011

Использование методов расширения C # - удобный способ предоставления метода AddRange. Имейте в виду, что это не будет быстрее, чем вызов Add несколько раз.

Вот один пример (вы можете добавить проверку ошибок для нулей и т. Д.).

Для использования вы можете:

sb.Children.AddRange(timelineInst1, timelineInst2);

или передать список.

sb.Children.AddRange(timelineInsts);

где timelineInst - список, который реализует IEnuermable<Timeline>.

public static class StoryboardExtensions
{
    public static void AddRange(this TimelineCollection timeline, IEnumerable<Timeline> timelines)
    {
        foreach (Timeline t in timelines)
        {
            timeline.Add(t);
        }
    }

    public static void AddRange(this TimelineCollection timeline, params Timeline[] timelines)
    {
        if (timeline == null || timelines.Length == 0) { return; }
        foreach (Timeline t in timelines)
        {
            timeline.Add(t);
        }

    }
}
...