WPF Combox.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 是列表。这里函数 ddl_cniProg.FindName(string) 不起作用。
我需要做什么才能从 dd_cniprog 获取项目?
I've got two comboboxes. The items of the first one i'm filling in Xaml with:
<ComboBox Name="ddl_pageType" Width="200" BorderThickness="5">
<ComboBoxItem Name="Website" Content="Webseite"/>
<ComboBoxItem Name="CNIProg" Content="Seite"/>
</ComboBox>
and the function ddl_pageType.FindName("Website"); works.
The second combobox i'm filling with:
ddl_cniProg.SetBinding(TextBlock.TextProperty, new Binding());
ddl_cniProg.ItemsSource = progList;
where proglist is List. Here the function ddl_cniProg.FindName(string) doesn't work.
What do i have to do to get an item from dd_cniprog?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
FrameworkElement.FindName
通过Name
属性搜索子元素。 (http://msdn.microsoft.com/en -us/library/system.windows.frameworkelement.findname.aspx) 除非您从数据绑定列表生成的 ComboBoxItems 具有 Name 属性集(从小代码片段来看并不像),否则函数将找不到它们。要使用
FindName
查找您要查找的元素,您需要通过数据绑定或以编程方式为每个项目设置Name
属性。FrameworkElement.FindName
searches for child elements via theName
attribute. (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname.aspx) Unless the ComboBoxItems you are generating from the databound list have the Name attribute set (which it doesn't look like from the small code snippet) then the function won't find them.To find the element you're looking for using
FindName
, you'll need to set theName
attribute for each item, either via databinding or programmatically.由于您没有为数据绑定
ComboBox
中的项目指定任何名称,因此无法使用FindName
...如果您想检索
ComboBoxItem< /code> 对于特定的数据项,您可以使用
ItemContainerGenerator
:Since you don't specify any name for the items in the databound
ComboBox
, you can't useFindName
...If you want to retrieve the
ComboBoxItem
for a specific data item, you can use theItemContainerGenerator
: