2011-01-21 4 views
0

У меня есть приложение для окон с двумя полями Combo (стиль Dropdownlist). Первый выпадающий получает данные из списка AppTable объекта, например, так:Нужно изменить выбранный элемент в выпадающем списке, если выбранный элемент в другом раскрывающемся списке изменений

foreach (AppTable table in appTableList) 
      cbxSelectName.Items.Add(table.App); 

Я создал триггер для того, когда выбранный элемент в этом выпадающем меню изменяется:

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged); 

И, наконец, , вот определение метода, вызываемого триггером. Обратите внимание, что значение в текстовом поле tbxNewWikiWord изменяется с изменением выбранного элемента. Однако, то же самое не происходит во втором списке (cbxUpdateAppType):

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (AppTable table in appTableList) 
     { 
      if (table.App == cbxSelectName.SelectedItem.ToString()) 
      { 
       this.tbxNewWikiWord.Text = table.WikiWord; 
       this.cbxUpdateAppType.SelectedItem = table.Type; 
       break; 
      } 
     } 

    } 

Вот как выглядит AppTable:

class AppTable 
{ 
    public string App { get; set; } 
    public string Type { get; set; } 
    public string WikiWord { get; set; } 

} 

я упускаю что-то?

+1

Вы заполняете 'cbxUpdateAppType' содержимое, которое отображается в' table.Type'? Отправьте код, который заполняет 'cbxUpdateAppType'. – shahkalpesh

+0

table.Type может содержать одно из трех значений: Сервис, Задача или Приложение. Однако я заполняю cbxUpdateAppType вручную этими тремя значениями, потому что, если я его заполню из table.Type в цикле, он получает одинаковые значения несколько раз. – xbonez

ответ

0

Добавление значений в cbxUpdateAppType из объекта AppTable исправлено. Я не уверен, почему, поскольку в любом случае я добавлял Strings.

Мне просто нужно было проверить наличие дубликатов, поэтому в моем выпадающем списке я не получаю несколько экземпляров одинакового значения.

foreach (AppTable table in appTableList) 
     { 
      if (!cbxUpdateAppType.Items.Contains(table.Type)) 
       cbxUpdateAppType.Items.Add(table.Type); 
     } 
Смежные вопросы