[英]data binding with combo box is not working
為什么這段代碼不起作用....
我想將組合框與來自數據庫表的名稱綁定,如下所示
private void getcategories()
{
var category = (from categories in tgs.categories
select categories.category_Name).ToList();
categoryCombobox.DataSource = category;
}
private void categoryCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
getcategories();
}
我是否在將詳細信息綁定到 combobox 時做錯了什么,請提供任何對我有幫助的建議
您需要在組合框中指定要綁定的特定列。
private void getcategories()
{
var category = (from categories in tgs.categories
select categories.category_Name).ToList();
categoryCombobox.DataSource = category;
categoryCombobox.DataBind(); //dont forget this
}
編輯-就像一個小的一般性批評,您的方法命名不佳。 我會做更多類似的事情:
private IEnumerable<string> Getcategories()
{
return categproes.Select(c=>c.category_Name);
}
private void BindCategories()
{
categoryCombobox.DataSource = this.GetCategories();
categoryCombobox.DataBind();
}
private void categoryCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
BindCategories();
}
您將它綁定在同一個 combobox 的 Selected Index changed 事件中,除非您在 combobox 中有一些項目,否則它不會觸發。
嘗試 getcategories() 中的代碼,例如 form_load 或單擊按鈕並將其從處理程序中刪除
您不想在每次索引更改時設置數據源,例如在FormLoad
事件中設置一次。 否則它永遠不會被初始設置,並且可能在索引發生更改時導致無限循環,因為它將重置數據源,更改索引,這將重置數據源等。
嘗試將其更改為:
private void Form_Load(object sender, EventArgs e)
{
LoadCategoriesCombo();
}
private void LoadCategoriesCombo()
{
var category = (from categories in tgs.categories
elect categories.category_Name).ToList();
categoryCombobox.DataSource = category;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.