WPF Combobox.Find Name()不起作用

时间:2009-12-21 10:12:07

标签: wpf combobox findname

我有两个组合框。第一个项目我填写Xaml:

<ComboBox Name="ddl_pageType" Width="200" BorderThickness="5">
                <ComboBoxItem Name="Website" Content="Webseite"/>
                <ComboBoxItem Name="CNIProg" Content="Seite"/>
</ComboBox>

和函数ddl_pageType.FindName(“Website”);的工作原理。

第二个组合框我正在填充:

 ddl_cniProg.SetBinding(TextBlock.TextProperty, new Binding());
 ddl_cniProg.ItemsSource = progList;

其中proglist是List。这里函数ddl_cniProg.FindName(string)不起作用。

从dd_cniprog获取项目需要做什么?

2 个答案:

答案 0 :(得分:1)

FrameworkElement.FindName通过Name属性搜索子元素。 (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname.aspx)除非您从数据绑定列表生成的ComboBoxItem具有Name属性集(从小代码片段看起来不像),否则函数将找不到它们。

要使用FindName查找您要查找的元素,您需要通过数据绑定或以编程方式为每个项目设置Name属性。

答案 1 :(得分:0)

由于您没有为数据绑定ComboBox中的项目指定任何名称,因此无法使用FindName ...

如果您要检索特定数据项的ComboBoxItem,可以使用ItemContainerGenerator

ComboBoxItem comboItem = ddl_cniProg.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;