2014-10-20 77 views
1

我在窗體上有一個組合框,我試圖用客戶端列表填充。我有一個帶有三個值的元組列表(var clients = new List<Tuple<int, string, string>>();)我從一個返回clientIDclientNamepath的SQL調用中獲取數據。在元組列表中使用Tuple值分配組合框的DisplayMember - C#

我遇到的問題是,我的組合框顯示(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設置爲列表中的元組的第二項?有什麼我應該使用,而不是一個元組?任何幫助,這是表示讚賞。

回答

6

嘗試設置comboBoxClient.DisplayMember = "Item2";

DisplayMember應該是一個字符串聲明屬性的名稱是diplayed。看到這裏:http://msdn.microsoft.com/de-de/library/system.windows.forms.listcontrol.displaymember%28v=vs.110%29.aspx

處理ValueMember是一樣的。

+0

沒關係,它很好。請參閱http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.displaymember(v=vs.110).aspx – BradleyDotNET 2014-10-20 17:21:00

+0

非常好。謝謝。這很有道理。我試圖將「value」設置爲displayMember/valueMember,而不是Tuple中Item列的名稱。 – 2014-10-20 17:23:56

+0

@BradleyDotNET對不起,在編輯我的帖子時沒有看到你已經插入了鏈接。 – Fratyx 2014-10-20 17:27:22

相關問題