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