【问题标题】:How to look up display value using key value in a combobox如何使用组合框中的键值查找显示值
【发布时间】:2012-03-21 13:37:18
【问题描述】:

我有一个将字典作为数据源的组合框。我正在尝试在组合框中查找一个键并获取它的显示值。 FindString 查找显示值。

var dictionary = new Dictionary<string, string>();
dictionary.Add("key1", "value1");
dictionary.Add("key2", "value2");
dictionary.Add("key3", "value3");
comboBox1.DataSource = new BindingSource(dictionary, null);
comboBox1.ValueMember = "Key";
comboBox1.DisplayMember = "Value";
comboBox1.FindString("key3") //returns -1
comboBox1.FindString("value3") //returns 2

但我想查找 key3 的显示值。我该怎么做?

【问题讨论】:

标签: c# winforms dictionary combobox datasource


【解决方案1】:

如果要查找当前选中的项和值:
comboBox1.SelectedValue和Text

如果要枚举原始来源,通常只需枚举原始来源:

dictionary["key3"];

如果由于某种原因您无法访问它,只需从组合框中取回它:

var originalDictionary = ((Dictionary<string,string>)((BindingSource)comboBox1.DataSource).DataSource);
var randomValue = originalDictionary["key3"];

【讨论】:

  • 谢谢。我想这可能可行,但我觉得找到显示值而不是键很奇怪。
  • comboBox1.SelectedValue 为您提供“关键”,如果您正在寻找用户选择的一项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多