Изменить значения itemssource во время выполнения - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть две кнопки и выпадающий список:

<Button Click="Btn2_Click"/>
<Button Click="Btn_Click"/>
<ComboBox x:Name="myCombo"  IsEditable="True" IsReadOnly="True" Text="-- Choose --"   SelectionChanged="MyCombo_SelectionChanged"/>

Класс выглядит следующим образом:

private List<string> lst;
public Page2()
{
   InitializeComponent();
   lst = new List<string>();
   myCombo.ItemsSource = lst; //set the combobox itemsource to the list content
}

private void Btn_Click(object sender, RoutedEventArgs e)
{
  //clear all from list and from combobox
  lst.Clear();
  if (myCombo.Items.Count > 0)
     myCombo.Items.Clear();

   for(int i=0;i<10;i++)
      lst.Add(i.ToString());//add some content to the list
}

private void Btn2_Click(object sender, RoutedEventArgs e)
{
  //clear all from list and from combobox
  lst.Clear();
  if (myCombo.Items.Count > 0)
     myCombo.Items.Clear();

   for(int i=10;i<20;i++) //add some other content to the list
     lst.Add(i.ToString());
}

Мой вопрос: когда я нажимаю btn1, я вижу в выпадающем списке значения 0,1,...9и если я нажму после на btn2, я все еще вижу те же значения 0,1,...9.

это не то, что я хочу, я хочу, чтобы при нажатии btn2 я хотел в поле со списком 10,11,...,19,

что мне не хватает?

1 Ответ

0 голосов
/ 06 декабря 2018
  1. Заменить List<string> на ObservableCollection<string>

  2. Вы уже установили myCombo.ItemsSource на lst, поэтому нет необходимости вручную обновлять Items какЧто ж.Просто добавьте / очистите коллекцию lst, и элемент управления автоматически обновится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...