привязка данных со списком не работает - PullRequest
0 голосов
/ 17 августа 2011

почему этот код не работает ....

Я хочу связать поле со списком с именами из таблицы базы данных, как это

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

делаю ли я что-то неправильно, чтобы связать детали со списком Любые предложения, которые будут полезны для меня

Ответы [ 4 ]

1 голос
/ 17 августа 2011

вам необходимо указать определенный столбец для привязки в поле со списком.

0 голосов
/ 17 августа 2011

Вы не хотите устанавливать источник данных каждый при изменении индекса, например, один раз в событии 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;   
}
0 голосов
/ 17 августа 2011

Вы связываете его в событии изменения выбранного индекса того же комбобокса, который не сработает, если в комбобоксе нет элементов.

Попробуйте код в getcategories () где-нибудь еще, например, form_load или onнажмите кнопку и удалите ее из обработчика

0 голосов
/ 17 августа 2011
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();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...