【发布时间】:2016-07-06 19:33:06
【问题描述】:
我有一个包含多个列的数据集,其中包括要显示的文本值和用于过滤另一个组合框的数值。
MyComboBox.DisplayMember = "Reason";
MyComboBox.ValueMember = "ReasonID";
MyComboBox.DataSource = MyDataTable;
我遇到的问题是我需要 ID 的那部分代码,但是对于另一部分代码我需要文本。我可以取回 ID,但我不确定如何在值更改时访问文本。我已经尝试了以下
String test1 = MyComboBox.SelectedValue.ToString();
String test2 = MyComboBox.SelectedText.ToString();
Test1 是我预期的 ID。但是 test2 是“”,我看不到任何提供显示值而不是选定值的属性。
【问题讨论】:
-
Windows 窗体,对吗?你试过
SelectedItem吗?SelectedText不是你想的那样,如果组合框是可编辑的,它是用户用鼠标选择的文本。 -
是的,我试过了。结果是“System.Data.DataRowView”,但 Fabio 下面的答案是我想要做的。
-
对,您的项目是 DataRowView,SelectedItem 是选中的。您可以将 SelectedItem 转换为该类型并从中获取您想要的任何属性:例如
((System.Data.DataRowView)MyComboBox.SelectedItem)["Reason"].ToString()。ComboBox.Text解决问题更简单,但现在你知道 SelectedItem 是什么了。
标签: c# combobox selectedvalue