我需要将以下项添加到组合框中.
值DisplayText
Mpost发表
呼叫呼叫
RScan重新扫描
这些项目是相当静态的,不会从任何数据库中检索出来......因此想到在设计时自己分配这些项目.
我无法使用Items属性,因为它只询问每个项目的一个值...你能帮忙吗?
Ps:如果您建议使用BindingSource,请举个例子.我找不到一个.
Dan*_*Tao 15
你可以使用BindingList<KeyValuePair<string, string>>:
var items = new BindingList<KeyValuePair<string, string>>();
items.Add(new KeyValuePair<string, string>("Mpost", "Posted"));
items.Add(new KeyValuePair<string, string>("Call", "Calling"));
items.Add(new KeyValuePair<string, string>("RScan", "Re-Scan"));
myComboBox.DataSource = items;
myComboBox.ValueMember = "Key";
myComboBox.DisplayMember = "Value";
Run Code Online (Sandbox Code Playgroud)
我认为你不会找到比这更简单或更直接的解决方案.只需将它放在表单的构造函数中(之后InitializeComponent- 顺便说一下,我会在代码中的这一点之后附加你想要添加到ComboBox的任何事件处理程序)并且你很好.
至于为什么没有更简单的方法:老实说,我会说这是一个典型的例子,说明解决方案变得越来越复杂,你尝试制作它们的灵活性就越大.别误会我的意思; ComboBox是一个非常好的小控件.但事实是,它的目的是获取任何合法的支持源,而不仅仅是一个表,一个列表,或一个具有两个属性的项集合.由于它可以采用任何数据源,因此严格键/值配对的概念在某种程度上被剥夺了其特殊状态.因此,提供一些特殊的GUI来添加具有两个属性的项目是没有多大意义的(尽管在这种特殊情况下它可能很方便).
| 归档时间: |
|
| 查看次数: |
14423 次 |
| 最近记录: |