ListBox игнорирует вновь установленный ItemsSource - PullRequest
0 голосов
/ 05 сентября 2018

В настоящее время я работаю над окном ввода WPF, и теперь у меня возникла следующая проблема:

if (e.Key == System.Windows.Input.Key.Enter)
{
     this.variantNumbers.Add(new VariantNumbers {Number = 
     txtVariantNo.Text});
     lstBoxVariants.ItemsSource = this.variantNumbers;
     lstBoxVariants.Visibility = Visibility.Visible;
     txtVariantNo.Text = "";
 }   

Когда я нажимаю Enter, я хочу обновить ItemsSource в ListBox, в то время как я настраиваю ItemsSource как новый каждый раз, когда добавляю элемент.

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

Пожалуйста, дайте мне знать, если кто-то из вас знает, что здесь может быть не так.

Спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

variantNumbers должно быть ObservableCollection<VariantNumbers>. В этом случае вам не нужно устанавливать ItemsSource при каждом добавлении нового элемента.

private readonly ObservableCollection<VariantNumbers> variantNumbers =
    new ObservableCollection<VariantNumbers>();
...

lstBoxVariants.ItemsSource = variantNumbers;
...

if (e.Key == System.Windows.Input.Key.Enter)
{
    variantNumbers.Add(new VariantNumbers { Number = txtVariantNo.Text });
    txtVariantNo.Text = "";     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...