Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在代码隐藏中检索WPF组合框的选定项的字符串值_C#_Wpf_Combobox - Fatal编程技术网

C# 在代码隐藏中检索WPF组合框的选定项的字符串值

C# 在代码隐藏中检索WPF组合框的选定项的字符串值,c#,wpf,combobox,C#,Wpf,Combobox,在代码隐藏中检索WPF组合框的选定项的字符串值时遇到问题 我已经设置了三种不同类型的数组,它们为三个组合框提供ItemSources。我已将每个ComboBox选定项绑定到名为DataBase的类的属性。我通过将每个数据库属性的值回显到文本框来验证绑定是否有效 在代码隐藏中,我想检索每个组合框所选项目的字符串值。 我可以对systemComboBox执行此操作,其中SelectedItem和SelectedValue都返回所选项目的字符串值 我无法让它在oneDComboBox中工作,其中Sel

在代码隐藏中检索WPF组合框的选定项的字符串值时遇到问题

我已经设置了三种不同类型的数组,它们为三个组合框提供ItemSources。我已将每个ComboBox选定项绑定到名为DataBase的类的属性。我通过将每个数据库属性的值回显到文本框来验证绑定是否有效

在代码隐藏中,我想检索每个组合框所选项目的字符串值。 我可以对systemComboBox执行此操作,其中SelectedItem和SelectedValue都返回所选项目的字符串值

我无法让它在oneDComboBox中工作,其中SelectedItem和SelectedValue返回“ComboBox.OneD”,或者在twoDComboBox中工作,后者正确返回SelectedValue,但返回“ComboBox.TwoD”作为SelectedItem的值

有人能告诉我如何获取oneDComboBox和twoDComboBox所选项目的字符串值吗

在VisualStudio中,我已将程序集下面代码的输出类型设置为“Console应用程序”,以便可以写入控制台

WPF

C

将SelectedValuePath属性设置为OneDName,并将SelectedValue属性绑定到XAML标记中的DataBaseOneDName:

<ComboBox x:Name="oneDComboBox" Grid.Row="1" Grid.Column="2" Width="120" DisplayMemberPath="OneDName"
            ItemsSource="{StaticResource OneDArray}"
            SelectedValuePath="OneDName"
            SelectedValue="{Binding Path=DataBaseOneDName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
            SelectionChanged="ComboBox_SelectionChanged"
            />
对TwoD也是一样

另一个选项是重写类的ToString方法,例如:

public partial class OneD
{
    public string OneDName { get; set; }

    public override string ToString()
    {
        return OneDName;
    }
}

谢谢你。我无法使您的XAML正常工作,但已修改了我的原始代码,以便它为我提供正确的输出。我已经发布了上面修改过的代码,以防有人发现它有用。谢谢你的建议。@Joe:只要复制粘贴就可以了。
<ComboBox x:Name="oneDComboBox" Grid.Row="1" Grid.Column="2" Width="120" DisplayMemberPath="OneDName"
            ItemsSource="{StaticResource OneDArray}"
            SelectedValuePath="OneDName"
            SelectedValue="{Binding Path=DataBaseOneDName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
            SelectionChanged="ComboBox_SelectionChanged"
            />
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox sourceComboBox = (ComboBox)sender;
    int selectedIndex = sourceComboBox.SelectedIndex;
    OneD oneD = sourceComboBox.SelectedItem as OneD;
    if (oneD != null)
    {
        string name = oneD.OneDName;
    }
    string displayMemberPath = sourceComboBox.DisplayMemberPath.ToString();
}
public partial class OneD
{
    public string OneDName { get; set; }

    public override string ToString()
    {
        return OneDName;
    }
}