2

我有两个组合框。我在 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 是列表。在这里,函数 ddl_cniProg.FindName(string) 不起作用。

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

4

2 回答 2

1

FrameworkElement.FindNameName通过属性搜索子元素。(http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname.aspx)除非您从数据绑定列表生成的 ComboBoxItems 设置了 Name 属性(它看起来不像从小代码片段中)然后该函数将找不到它们。

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

于 2009-12-21T14:57:05.550 回答
0

由于您没有为 databound 中的项目指定任何名称,因此ComboBox您不能使用FindName...

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

ComboBoxItem comboItem = ddl_cniProg.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;
于 2009-12-21T15:19:25.073 回答