WPF Combox.FindName() 不起作用

发布于 2024-08-15 17:47:47 字数 583 浏览 6 评论 0原文

我有两个组合框。我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陪你搞怪i 2024-08-22 17:47:47

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 the Name 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 the Name attribute for each item, either via databinding or programmatically.

池木 2024-08-22 17:47:47

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

如果您想检索 ComboBoxItem< /code> 对于特定的数据项,您可以使用 ItemContainerGenerator

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

Since you don't specify any name for the items in the databound ComboBox, you can't use FindName...

If you want to retrieve the ComboBoxItem for a specific data item, you can use the ItemContainerGenerator :

ComboBoxItem comboItem = ddl_cniProg.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文