2
好的,首先我有下面的代碼工作..雖然我的問題是這樣的;我應該像下面的例子那樣編碼combobox數據綁定,還是有更簡單/更有效的方法?CSharp .NET 3.5 Windows Form DataBinding ComboBox to a List <>
首先,我需要操縱的結果從數據庫返回到顯示一個更具描述性的意義:
(我使用的基本類的鍵/值對)
class WashBayDesc
{
public string Key { get; set; }
public string Text { get; set; }
}
現在我從DataReader檢索數據並執行操作,我需要它,然後將結果與列表項:
var washbaydata = new List<WashBayDesc>();
// Read through the available cashboxes and populate a list/combobox
while (rdr.Read())
{
string sWashBayDesc = null;
string sWB = rdr["washbay"].ToString();
if (sWB.StartsWith("3"))
{
sWashBayDesc = "Bay " + sWB.Substring(1);
}
else
{
sWashBayDesc = "Auto " + sWB.Substring(1);
}
washbaydata.Add(new WashBayDesc { Key = sWB, Text = sWashBayDesc });
}
// Now bind the hashtable (with our bay selectors) to the dropdown
cmbCashBoxes.DataSource = washbaydata;
cmbCashBoxes.ValueMember = "Key";
cmbCashBoxes.DisplayMember = "Text";
所以..這個想法是我可以簡單的綁定組合框的數據源到washbaydata列表對象..這工作正常。
下一部分是檢索選定的項目值(即不是文本描述,而是值或密鑰本身)。這是我想也許是位不很看的權利,但它再次工程...
WashBayDesc myRes = new WashBayDesc();
myRes = (WashBayDesc)cmbCashBoxes.SelectedItem;
string sWashBayCashBox = myRes.Key;
所以結果是我的字符串sWashBayCashBox有選擇的關鍵...
我想它的工作原理,那很好,但有沒有更簡單/更清潔的方式?
謝謝!優秀作品。所以我猜((字符串)鑄造只是獲取SelectedValue對象的第一個元素? 無論哪種方式,更簡單,更清潔..再次感謝你! – 2009-12-10 01:03:31
我很高興你喜歡它。 SelectedValue返回一個對象,這就是我們需要向下轉換爲字符串的原因。 – 2009-12-10 03:49:59