在阵列中存储多个控件的最佳方法

时间:2009-02-16 02:26:25

标签: wpf controls

我在WPF中有一个带有多个子控件的UserControl,我想像数组一样索引。这些子控件与我不感兴趣的其他子控件位于相同的网格控件中。

我希望能够以类似于:

的方式索引这些控件
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 个答案:

答案 0 :(得分:1)

您可以将这些控件包装在另一个网格控件

答案 1 :(得分:1)

另一种非WPF方式,   通过

创建控件集合后面的代码
foreach(DayCalendarTime control in gCalendar.Children)
{ 
  controlCollection[i++] = control;
}