【问题标题】:C3 comboBox different display and value members but need to access bothC3 comboBox 不同的显示和值成员但需要同时访问
【发布时间】: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


【解决方案1】:

使用ComboBox.Text Property

string value = MyComboBox.Text;

Text 属性包含您案例中所选项目的DisplayMember 值。

来自 MSDN 的关于 ComboBox.SelectedText

获取或设置在可编辑部分中选择的文本 组合框。

所以这不是所选项目的文本

【讨论】:

  • doh...谢谢我有一个完整的金发时刻。我知道一定有一些简单的东西我错过了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 2018-03-07
  • 1970-01-01
  • 2018-03-14
  • 2019-05-06
  • 1970-01-01
相关资源
最近更新 更多