C# 如何从WPF中的多列组合框中获取选定项的值

C# 如何从WPF中的多列组合框中获取选定项的值,c#,wpf-controls,C#,Wpf Controls,给它起个名字 string selectionString = ((ComboBoxItem)ASelect.SelectedItem).Content.ToString(); 更新:对不起,我弄错了:) 您有一个属性ASelect.SelectedIndex,它指示选择了哪一个 因此,您可以创建一个文本块列表集合(list或Dictionary f.e),并将您的文本块(命名)按顺序添加到其中,然后 m_txtAllValues.Text = "yay it does wo

给它起个名字

string selectionString = ((ComboBoxItem)ASelect.SelectedItem).Content.ToString();
更新:对不起,我弄错了:)

您有一个属性ASelect.SelectedIndex,它指示选择了哪一个 因此,您可以创建一个文本块列表集合(list或Dictionary f.e),并将您的文本块(命名)按顺序添加到其中,然后

         m_txtAllValues.Text = "yay it does work";
给它起个名字

string selectionString = ((ComboBoxItem)ASelect.SelectedItem).Content.ToString();
更新:对不起,我弄错了:)

您有一个属性ASelect.SelectedIndex,它指示选择了哪一个 因此,您可以创建一个文本块列表集合(list或Dictionary f.e),并将您的文本块(命名)按顺序添加到其中,然后

         m_txtAllValues.Text = "yay it does work";

你需要深入挖掘。。。。并使用FindChild方法在ComboBoxItem中查找TextBlock。不过,如果不命名控件,您可能需要对其进行一些更改,以便可以搜索第n个子控件,该控件的深度为M层或其他任何级别


一旦有了子文本块,您只需使用.Text即可获得它。

您需要深入挖掘。。。。并使用FindChild方法在ComboBoxItem中查找TextBlock。不过,如果不命名控件,您可能需要对其进行一些更改,以便可以搜索第n个子控件,该控件的深度为M层或其他任何级别


拥有子文本块后,只需使用.Text即可获得它。

您正在添加一个复杂类型(StackPanel)作为组合框的项。当访问组合框的SelectedItem属性时,您将返回StackPanel对象的实例

这是组合框对其项的了解程度。它不知道StackPanel里面是什么

正如Myermian所说,您需要以某种方式对可视化树进行爬网,以确定您想要什么

黑客的方法是取你得到的StackPanel实例,调用StackPanel.Children获取它的子对象,然后迭代这些子对象,找到你想要的。然而,这是一种非常脆弱的办法,一般不建议采取这种办法


您真正想要做的是数据绑定组合框,并将UI与列表中的数据分离。通过这种方式,您可以访问所需的数据(文本框值),而无需考虑项目的UI结构

您正在将复杂类型(StackPanel)添加为组合框的项目。当访问组合框的SelectedItem属性时,您将返回StackPanel对象的实例

这是组合框对其项的了解程度。它不知道StackPanel里面是什么

正如Myermian所说,您需要以某种方式对可视化树进行爬网,以确定您想要什么

黑客的方法是取你得到的StackPanel实例,调用StackPanel.Children获取它的子对象,然后迭代这些子对象,找到你想要的。然而,这是一种非常脆弱的办法,一般不建议采取这种办法


您真正想要做的是数据绑定组合框,并将UI与列表中的数据分离。通过这种方式,无论项目的UI结构如何,您都可以访问所需的数据(文本框值)

请遵循以下代码

     string txt = myCollectionOfTextBlocks[ASelect.SelectedIndex];
string typeID=“WHT01”;
对于(int i=0;i

有关更多信息,请访问此链接

请遵循此代码

     string txt = myCollectionOfTextBlocks[ASelect.SelectedIndex];
string typeID=“WHT01”;
对于(int i=0;i

有关更多信息,请访问此链接

不,我的组合框有多个组合框项目。我已编辑我的问题,以显示我拥有的所有项目。我只想获取所选项目textblock的文本,我该怎么做。我是否必须为所有组合框项目中的文本块命名。如果是,那么如何获取所选项目的文本?如果是静态集合,您可以给它们命名:)如果不是xaml,那么节点、子节点等等都是xml,那么它是静态集合,但是如何获取所选组合框项目的文本?不,我的组合框有多个组合框项目。我已编辑我的问题,以显示我拥有的所有项目。我只想获取所选项目textblock的文本,我该怎么做。我是否必须为所有组合框项目中的文本块命名。如果是,那么如何获取所选项目的文本?如果它是一个静态集合,你可以给它们命名:)如果不是xaml,那么节点、子节点等等都是xml,那么它是一个静态集合,但是如何获取所选组合框项目的文本?即使我给出了一个可能的答案,我也不知道这些值是否是硬编码的(如您在示例中所示)或者它们是否与绑定到组合框的某个列表相关。如果您有一个列表,您只需获取SelectedIndex并使用它来获取您正在查找的值,因为您现在有了索引。即使我给出了一个可能的答案,我也不知道这些值是否是硬编码的(如您在示例中所示)或者如果它们与绑定到组合框的某个列表相关。如果你有一个列表,你只需获取SelectedIndex并使用它来获取你正在寻找的值,因为你现在有了索引。这太令人困惑了。有没有更简单的方法获取值?这太令人困惑了。有没有更简单的方法获取值?