我有这样的控件:
<Grid DataContext="{Binding RelativeSource= {RelativeSource FindAncestor, AncestorType={x:Type controls:MyControl}}}">
<telerik:RadComboBox
x:Name="radComboBox1"
Margin="0,5,5,5">
<telerik:RadComboBox.Items>
<telerik:RadComboBoxItem>
<telerik:RadComboBoxItem.Template>
<ControlTemplate>
<telerik:RadGridView
x:Name="radGridView1"
ItemsSource="{Binding GridItemsSource}"
AutoGenerateColumns="False"
SelectedItem="{Binding SelectedGridItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</telerik:RadGridView>
</ControlTemplate>
</telerik:RadComboBoxItem.Template>
</telerik:RadComboBoxItem>
</telerik:RadComboBox.Items>
</telerik:RadComboBox>
当我尝试访问子控件radGridView1时
Dim item = radComboBox1.Items(0)
Dim gr As RadGridView = item.Template.FindName("radGridView1", item)
gr为空
为什么在comboboxItem中找不到radGrid1?
谢谢
答案 0 :(得分:0)
请注意,我在上一个问题中链接的答案......:
TextBox textBox = (TextBox)control.Template.FindName("Address", control);
... control
是一个实际的控件,而不是像{+ 1}}那样的数据项。您可以使用ItemContainerGenerator.ContainerFromItem
Method来获取数据项中的实际ComboBox.Items
,如下所示:
ComboBoxItem
然后,您可以从中访问ComboBoxItem control = radComboBox1.ItemContainerGenerator.ContainerFromItem(item);
生成的项目。