使用元组列表中元组的值为组合框分配DisplayMember - C#

时间:2014-10-20 17:05:49

标签: c# combobox tuples

我在Windows窗体上有一个组合框,我试图填充一个客户列表。我有一个包含三个值的元组列表(var clients = new List<Tuple<int, string, string>>();)我从SQL调用中获取数据,返回clientIDclientNamepath

我遇到的问题是,我的组合框显示(1, companyName, c:\Path)这是我列表的第一个值,但我真正想要显示的是companyName(元组中的Item2)和不是其他数据。

如果我的clients变量只是一个元组而不是元组列表,我可以这样做:

comboBoxClients.DisplayMember = clients.Item2;
comboBoxClients.ValueMember = clients.Item1

以下是我尝试使用的代码无效:

var clients = new List<Tuple<int, string, string>>();
clients = GetClients();
comboBoxClient.DataSource = clients;
comboBoxClient.DisplayMember = clients[0].Item2;

有没有办法可以将DisplayMember设置为列表中元组的第二项?我还应该使用其他东西而不是元组吗?对此有任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:6)

尝试设置comboBoxClient.DisplayMember = "Item2";

DisplayMember应该是一个字符串,声明要显示的属性的名称。见这里:http://msdn.microsoft.com/de-de/library/system.windows.forms.listcontrol.displaymember%28v=vs.110%29.aspx

ValueMember的处理方式相同。