我在Windows 8中使用Silverlight 5.1.30514.0,並且我有一種情況,其中根據表中的字段,我需要顯示不同數量的CheckBox,如果字段爲4,則爲4 CheckBox,如果字段是6,則6 CheckBox和該字段可以是4,6,10或12,然後我使在資源:如何在Silverlight中訪問控件到DataTemplate中?
<DataTemplate x:Name="chkField4" DataType="ContentControl">
<Grid Name="grd">
<Border BorderBrush="Black" BorderThickness="1" Margin="0,0,0,0" Background="DarkSeaGreen" />
<CheckBox Content="2" Name="chk2" Grid.Column="1" Margin="20,20,20,20" Checked="CheckBox_Checked" />
<CheckBox Content="1" Name="chk1" Grid.Column="1" Margin="20,60,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="4" Name="chk4" Grid.Column="1" Margin="80,20,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="3" Name="chk3" Grid.Column="1" Margin="80,60,20,20" Checked="CheckBox_Checked"/>
</Grid>
</DataTemplate>
而另一:
<DataTemplate x:Name="chkField6" DataType="ContentControl">
<Grid Name="grd">
<Border BorderBrush="Black" BorderThickness="1" Margin="0,0,0,0" Background="DarkSeaGreen" />
<CheckBox Content="2" Name="chk2" Grid.Column="1" Margin="20,20,20,20" Checked="CheckBox_Checked" />
<CheckBox Content="1" Name="chk1" Grid.Column="1" Margin="20,60,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="4" Name="chk4" Grid.Column="1" Margin="80,20,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="3" Name="chk3" Grid.Column="1" Margin="80,60,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="6" Name="chk6" Grid.Column="1" Margin="140,20,20,20" Checked="CheckBox_Checked"/>
<CheckBox Content="5" Name="chk5" Grid.Column="1" Margin="140,60,20,20" Checked="CheckBox_Checked"/>
</Grid>
</DataTemplate>
和2更類似於(chkField10 ,chkField12)。 我把ContentControl中:
<ContentControl Name="chk" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"/>
而在後面的代碼視場,如果場= 4:
chk.ContentTemplate = chkField4;
現在,我想以檢討是否要訪問每個組合框檢查,是這樣的:
if (chk2.IsChecked) ...
if (chk1.IsChecked) ...
但是,問題是:CHK1,CHK2,......不可問他們,我想提出一個通用的循環使用「爲」或「的foreach 「1到n,其中ni s在ContentControl中的CheckBox的數量
我不知道我該怎麼做,或者如果我做的是對的,有人可以指導我?
我在這樣的環境真的新,感謝
Hey Cyndy,你甚至在做這種事情的快速搜索,無論它在[這裏](http://stackoverflow.com/questions/26258512/get-the-controls-inside-datatemplate-control)或[其他地方](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=controls+inside+datatemplate+silverlight),然後再問?如果有的話,你可能會很快找到與[VisualTreeHelper](http://blog.falafel.com/finding-controls-by-type-in-silverlight-and-wpf/)相關的東西。 – 2014-10-09 17:45:51
是的Chris W.,肯定的,我嘗試過在這裏和MSDN論壇的幾個選項,但顯然不是位於ContenControl兒童內部,無論在DataTemplate裏面定義什麼,都將其作爲單個控件 – Cyndy 2014-10-09 18:32:47