我有两个组合框。第一个项目我填写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获取项目需要做什么?
答案 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;