繁体   English   中英

绑定列表 <KeyValuePair> 组合框

[英]Bind List<KeyValuePair> to combobox

我无法创建一个类或我自己的对象,所以我想我会使用List<KeyValuePair>来存储两个属性,然后将这个对象绑定到一个组合框。

但是,我无法看到如何在组合框中设置valueFieldTextField

编码。

List<KeyValuePair<int, string>> kvpObject = 
 new List<KeyValuePair<int, string>>();

foreach (User u in m_users) {

    kvpObject.Add(new KeyValuePair<int, string>(u.ID, u.Name));
}

// Bind Add Users combobox
cmboBox.DataSource = kvpObject;
cmboBox.ValueField = "????" // Maybe something like kvpObject[0]..
cmboBox.TextField  = "????";
cmboBox.DataBind();

有谁知道我需要把它放在????

我想它应该是这样的:

cmboBox.ValueField = "Key";
cmboBox.TextField  = "Value";

因为您正在使用KeyValuePair。 属性是KeyValue

更新:

我也有一个建议。 而不是使用for循环。 然后,您可以使用Linq将其绑定到组合框的数据源。 像这样的东西:

cmboBox.DataSource = m_users
                      .Select (s =>new KeyValuePair<int,string>(s.ID,s.Name))
                      .ToList();
cmboBox.ValueField = "Key";
cmboBox.TextField  = "Value";
cmboBox.DataBind();

记得包括System.Linq;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM