【问题标题】:data binding with combo box is not working与组合框的数据绑定不起作用
【发布时间】:2011-08-17 11:44:24
【问题描述】:

为什么这段代码不起作用....

我想将组合框与来自数据库表的名称绑定,如下所示

      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();
      } 

我是否在将详细信息绑定到组合框时做错了什么 任何对我有帮助的建议请提出

【问题讨论】:

  • 我不太明白你在说什么,我正在使用 winforms....

标签: c# winforms data-binding combobox


【解决方案1】:

您需要在组合框中指定要绑定的特定列。

【讨论】:

  • 我认为假设category_name 是一个字符串是安全的,所以这不是必需的。如果它不是字符串,而是复杂类型,那么您绝对需要指定要绑定到的属性的名称。
【解决方案2】:
private void getcategories()
{
    var category = (from categories in tgs.categories
                        select categories.category_Name).ToList();
    categoryCombobox.DataSource = category;

    categoryCombobox.DataBind(); //dont forget this

}

edit - 作为一个小的一般性批评,您的方法命名不佳。我会做更多类似的事情:

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();
} 

【讨论】:

  • 我找不到属性 categorycombobox.databind() 它会显示这个选项 categorycombobox.databinds
  • 正如评论他在winform上
  • 很久没做winforms了,没有.DataBind()调用?
【解决方案3】:

您将其绑定在同一个组合框的 Selected Index changed 事件中,除非您在组合框中有某些项目,否则该事件不会触发。

尝试 getcategories() 中的代码,例如 form_load 或单击按钮并将其从处理程序中删除

【讨论】:

    【解决方案4】:

    您不想每次在索引更改时设置数据源,例如在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;   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-26
      • 2014-12-23
      • 2013-02-19
      • 2011-08-05
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多