C# WPF C-ComboBox方法返回对象而不是字符串

C# WPF C-ComboBox方法返回对象而不是字符串,c#,wpf,combobox,selectionchanged,C#,Wpf,Combobox,Selectionchanged,我是WPF新手,我正在尝试找出如何在组合框中获取所选项目的当前文本值。我看到有人建议做MyComboBox.SelectedItem.Text。然而,SelectedItem为我返回对象,所以我只有ToString、Equals等选项。发生了什么?我正在使用.NET3.5,在VS2010中开发。我认为可能会用到的其他方法,比如mymbobox.SelectedValue,也可以返回object。SelectedIndex返回int,但我需要一个字符串值。MyComboBox是ComboBox类型

我是WPF新手,我正在尝试找出如何在组合框中获取所选项目的当前文本值。我看到有人建议做MyComboBox.SelectedItem.Text。然而,SelectedItem为我返回对象,所以我只有ToString、Equals等选项。发生了什么?我正在使用.NET3.5,在VS2010中开发。我认为可能会用到的其他方法,比如mymbobox.SelectedValue,也可以返回object。SelectedIndex返回int,但我需要一个字符串值。MyComboBox是ComboBox类型。我正在用处理SelectionChanged事件的方法访问它。

您尝试过MyComboBox.Text吗?将返回当前所选项目的文本

您还可以将SelectItem解析为您设置的数据源类型,并直接从对象中获取所需的文本属性

你试过MyComboBox.Text吗?将返回当前所选项目的文本

您还可以将SelectItem解析为您设置的数据源类型,并直接从对象中获取所需的文本属性

每个项目都是一个对象。 显示的数据为Object.ToString Item.ToString

但您可以使用对象中的任何其他对象成员、属性或方法。 您已将对象添加到Combo,然后您知道对象类型并可以强制转换它。

每个项目都是一个对象。 显示的数据为Object.ToString Item.ToString

但您可以使用对象中的任何其他对象成员、属性或方法。
您已经将对象添加到Combo,然后您知道对象类型并可以强制转换它。

这肯定会给我一个字符串值。看起来我得到了ComboBox过去的值,即使我将给定给我的事件处理程序的对象强制转换为ComboBox并使用它的文本值。你得到了它过去的值吗?在设置新项目之前是否以某种方式触发了事件?我不确定。我的XAML中有这样一个命令:`SelectionChanged=Product\u SelectionChanged,Product\u SelectionChanged`是我的事件处理程序方法的名称。我应该使用不同的事件吗?不,这是我将使用的事件,尽管您可以尝试使用另一个事件来查看它是否仍然存在相同的问题。当你在组合框中选择一个不同的项目时,它到底会触发两次还是仅仅触发一次?MyComboBox.Text提供给你的,非常简单的是显示在顶部和关闭时的文本。如果您的组合框允许编辑,它可能与所选项目不同。这肯定会给我一个字符串值。看起来我得到了ComboBox过去的值,即使我将给定给我的事件处理程序的对象强制转换为ComboBox并使用它的文本值。你得到了它过去的值吗?在设置新项目之前是否以某种方式触发了事件?我不确定。我的XAML中有这样一个命令:`SelectionChanged=Product\u SelectionChanged,Product\u SelectionChanged`是我的事件处理程序方法的名称。我应该使用不同的事件吗?不,这是我将使用的事件,尽管您可以尝试使用另一个事件来查看它是否仍然存在相同的问题。当你在组合框中选择一个不同的项目时,它到底会触发两次还是仅仅触发一次?MyComboBox.Text提供给你的,非常简单的是显示在顶部和关闭时的文本。如果您的组合框允许编辑,则它可能与所选项目不同。如何填充组合框或对组合框进行数据绑定?原则上,selectedItem的类型与您输入的类型相同,只是作为对象公开。它可以简单到s=string cbx.SelectedItem;如何填充或数据绑定组合框?原则上,selectedItem的类型与您输入的类型相同,只是作为对象公开。它可以简单到s=string cbx.SelectedItem;
MyObject obj = (MyObject)MyComboBox.SelectedItem;
string text = obj.Text;