【问题标题】:WPF Combox.FindName() doesn't workWPF Combobox.Find Name() 不起作用
【发布时间】:2010-12-28 16:44:24
【问题描述】:

我有两个组合框。我在 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 获取项目?

【问题讨论】:

    标签: wpf combobox findname


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        • 2010-12-22
        • 2017-01-28
        • 1970-01-01
        相关资源
        最近更新 更多