如何在填充字典的组合框中获取 SelectedValue 的值
Posted
技术标签:
【中文标题】如何在填充字典的组合框中获取 SelectedValue 的值【英文标题】:How to get value of SelectedValue in ComboBox filled with Dictionary 【发布时间】:2013-03-12 20:57:01 【问题描述】:我们有这样的字典:
var dictionary = new Dictionary<int, int> 0, 100 , 1, 202 , 2, 309 , ;
等等很多值。像这样绑定到组合框的字典:
comboBox1.ItemsSource = dictionary;
comboBox1.DisplayMemberPath = "Value";
如果 comboBox.Text 仅适用于手动输入的值和此代码,我想知道如何获取此组合框的 selectedvalue:
string value = comboBox1.SelectedValue.ToString();
返回值如 [1, 202],而我需要清除 int TValue "202"。我找不到类似的问题,所以我在那里问,希望答案对其他人有用。
【问题讨论】:
使用它作为学习如何使用Dictionary<int,int> or Dictionaryt<string, int>
***.com/questions/6412739/… 创建BindingSource
的替代方法
【参考方案1】:
看来您必须将SelectedValue
转换为KeyValuePair<int, int>
:
string value = ((KeyValuePair<int, int>)comboBox1.SelectedValue).Value.ToString();
但是,您应该在此处设置一个刹车点并检查 SelectedValue
的真正类型。
我假设它是KeyValuePair<int, int>
,因为您的源集合是Dictionary<int, int>
,并且因为SelectedValue.ToString()
的输出字符串是[1, 202]
。
【讨论】:
太棒了!效果很好,非常感谢!!我会尽快接受你的回答。 如果指定了 SelectedValuePath,最好使用 selecteditem,因为 selectedvalue 的类型可能不同【参考方案2】:如果指定 ValueMember,则可以避免强制转换操作。 在数据源之前设置路径很重要,否则它会使用键值对的选定值触发更改的事件。
comboBox1.DisplayMemberPath = "Value";
comboBox1.SelectedValuePath= "Key";
comboBox1.ItemsSource = dictionary;
string value = comboBox1.SelectedValue.ToString();
【讨论】:
以上是关于如何在填充字典的组合框中获取 SelectedValue 的值的主要内容,如果未能解决你的问题,请参考以下文章