Лучший способ хранить несколько элементов управления в массиве - PullRequest
1 голос
/ 16 февраля 2009

У меня есть пользовательский элемент управления в WPF с многочисленными дочерними элементами управления, которые я хотел бы индексировать как массив. Эти дочерние элементы управления находятся в том же элементе управления сеткой, что и другие дочерние элементы управления, которые меня не интересуют.

Я бы хотел иметь возможность индексировать эти элементы управления следующим образом:

someControl.Children[3];

Без необходимости избегать элементов управления, которые меня не интересуют. Вот пример того, что у меня есть:

<Grid x:Name="gCalendar">
    // more crap here...

    <TextBlock Grid.Row="0" Grid.Column="7" TextBlock.TextAlignment="Center">Blah</TextBlock>


    <Internal:DayCalendarTime Grid.Row="1" Grid.Column="0" />
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="1"/>
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="2"/>
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="3"/>
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="4" />
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="5"/>
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="6"/>
    <Internal:DayCalendarCore Grid.Row="1" Grid.Column="7"/>
</Grid>

Мне бы хотелось иметь массив, состоящий только из элементов управления Internal: DayTimeCore, поместив вокруг них какой-то элемент управления обтеканием.

Возможно ли это, или мне придется вручную создавать массив, просматривая все дочерние элементы сетки и добавляя те, которые имеют интересующий меня тип?

Ответы [ 2 ]

1 голос
/ 16 февраля 2009

Другой способ без WPF, Создайте код для коллекции элементов управления

foreach(DayCalendarTime control in gCalendar.Children)
{ 
  controlCollection[i++] = control;
}
1 голос
/ 16 февраля 2009

Вы можете обернуть эти элементы управления в другой элемент управления Grid

...