Wpf 在代码隐藏中访问DataTemplate中的另一个控件
我有一个包含多个控件的数据模板。其中一个控件是需要访问datatemplate中其他控件的按钮Wpf 在代码隐藏中访问DataTemplate中的另一个控件,wpf,datatemplate,Wpf,Datatemplate,我有一个包含多个控件的数据模板。其中一个控件是需要访问datatemplate中其他控件的按钮 <DataTemplate> <StackPanel> <ComboBox x:Name="optionsCombo" > <ComboBoxItem Content="Option1" /> <ComboBoxItem Content="Option2" />
<DataTemplate>
<StackPanel>
<ComboBox x:Name="optionsCombo" >
<ComboBoxItem Content="Option1" />
<ComboBoxItem Content="Option2" />
<ComboBoxItem Content="Option3" />
</ComboBox>
<Button Name="DoSomethingButton" Margin="10" Click="DoSomethingButton_Click">Do Something</Button>
</StackPanel>
</DataTemplate>
我收到一个错误:“当前上下文中不存在名称“optionsCombo”
那么,如何从按钮单击事件访问DataTemplate中的其他控件呢?您不能这样访问它,因为DataTemplates没有生成代码,即optionsCombo组合框在编译时并不存在,因此出现错误。要在代码隐藏中操作它,您需要使用VisualTreeHelper,它在网络上有很好的描述。只需获取发送者的父面板,然后按名称查找组合框,然后将其转换为正确的类型。给你
private void DoSomethingButton_Click(object sender, RoutedEventArgs e)
{
ComboBoxItem myItem = (ComboBoxItem)optionsCombo.SelectedItem;
}