WPF中的键值对combobox
考虑我绑定到ComboBox的键值对集合(Ex键= MSFT值= MSFT Microsoft)。 DisplayMemeberPath =价值。 以下需要完成
我不能提出支持这两个function的解决方案。 解决一个打破另一个。
我想你想要的是如下。
public class ComboBoxPairs { public string _Key { get; set; } public string _Value { get; set; } public ComboBoxPairs(string _key,string _value ) { _Key = _key ; _Value = _value ; } }
然后你继续这样使用这个类
List cbp = new List (); cbp.Add(new ComboBoxPairs("Microsoft", "MSFT")); cbp.Add(new ComboBoxPairs("Apple", "AAPL"));
并将它绑定到你拥有的combobox
cmbBrokers.DisplayMemberPath = "_Key"; cmbBrokers.SelectedValuePath = "_Value"; cmbBrokers.ItemsSource = cbp;
当你需要访问它时,就这样做
ComboBoxPairs cbp = (ComboBoxPairs)cmbBrokers.SelectedItem; string _key = cbp._Key; string _value = cbp._Value;
这就是你需要做的。
使用更通用的解决方案扩展Adams示例。
在xaml.cs中创建一个可观察的集合属性并为其分配一个集合。
ObservableCollection < KeyValuePair < string , string > > MyCollection { get; set; } MyCollection = new ObservableCollection < KeyValuePair < string , string > > ( ) { new KeyValuePair < string , string > ("key1" ,"value1"), new KeyValuePair < string , string > ("key2" ,"value2") };
在xaml文件中,将您的observable集合数据绑定到您在后面的代码中创建的属性。
如果要显示值,可以将DisplayMemberPath="Key"
更改为DisplayMemberPath="Value"
。
我不认为开箱即用的combobox是适合您在这种情况下使用的UI元素。 这里的问题是combobox不是为支持键/值对而设计的,特别是如果您希望用户能够在绑定到键时向字典添加值。 例如,如果您允许它们添加值,他们如何添加密钥或选择要更新的密钥?
我认为解决方案是有两个控件:用于键选择的combobox和用于值输入的文本框。 值文本框将隐藏,直到用户选择一个键。 选择密钥后,让他们将值输入到文本框中,然后按Enter或按钮,然后将值设置为所选密钥。
上述就是C#学习教程:WPF中的键值对combobox分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1027181.html