为什么这段代码不起作用....
我想将组合框与来自数据库表的名称绑定,如下所示
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();
}
我做错了将细节绑定到组合框 任何对我有帮助的建议
答案 0 :(得分:1)
您需要在组合框中指定要绑定的某个列。
答案 1 :(得分:0)
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();
}
答案 2 :(得分:0)
您在相同组合框的选定索引更改事件中绑定它,除非您在组合框中有一些项目,否则不会触发。
在其他地方尝试getcategories()中的代码,例如form_load或单击按钮并将其从处理程序中删除
答案 3 :(得分:0)
您不希望在索引更改的每个时间设置数据源,例如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;
}