ListBox会忽略新设置的ItemsSource

时间:2018-09-05 11:10:59

标签: c# wpf

我目前正在使用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 :(得分:1)

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 = "";     
}
相关问题