[英]access to property on selection winforms combobox
一篇文章具有Name
和Price
屬性。 我使用Name屬性在組合框cmbDataList
顯示文章,如下所示
public Form1()
{
InitializeComponent();
cmbDataList.DataSource = GetData();
cmbDataList.DisplayMember = "Name";
}
用戶選擇首選文章后,我想使用它的Price
屬性將其分配給同一表單上的文本框。 那么,如何訪問該Price
屬性?
private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
//var sel = cmbDataList.SelectedItem;
}
您必須將SelectedItem
為適當的對象。
private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
var sel = (YourObject)cmbDataList.SelectedItem;
txt.Text = sel.Price.ToString();
}
除非所有名稱都是唯一的,否則您將需要引用唯一的標識符,例如articleID。
在這里,像這樣設置ComboBox的ValueMember
;
cmbDataList.ValueMember = "ID";
然后您就可以在事件處理程序上獲取價值了;
private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
var sel = cmbDataList.SelectedValue;
//From here you're going to need to find your article with that particular ID.
}
另外。 您可以將DisplayMember
作為商品名稱,將價格作為ValueMember
,然后以與我上面相同的方式將其獲取到SelectedIndexChanged
的事件處理程序中。 SelectedValue
將返回價格;
cmbDataList.ValueMember = "Price";
private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
var yourSelectedPrice = cmbDataList.SelectedValue;
}
假設GetData()
返回一個表,則還需要編寫ValueMember
,如下所示:
InitializeComponent();
cmbDataList.DataSource = GetData();
cmbDataList.DisplayMember = "Name";
cmbDataList.ValueMember = "Price";
現在,您選擇的顯示將與該值同步,您將可以使用它。
在此處獲取更多信息: 填充組合框
您需要設置ValueMember您可以這樣設置
cmbDataList.ValueMember =“ ID”;
然后在cmbDataList_SelectedIndexChanged事件上編寫代碼
也許這會幫助你
var sel = cmbDataList.SelectedValue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.