WPF ListBox没有使用ItemsSource更新

我认为在WPF设置中应该是简单的双向数据绑定,但是当集合发生变化时,列表框(目标)不会更新。

我正在以编程方式设置ListBox的ItemsSource:

lstVariable_Selected.ItemsSource = m_VariableList; 

ListBox声明如下:

                

当我最初设置ItemsSource时,ListBox(当时不可见)获取其项目集。 但是,如果我查看ListBox,那么更新似乎就此停止了。

然后我可以从m_VariableList集合中删除一个项目,它不会从ListBox中消失。 同样,如果我添加一个,它就不会出现。

是什么赋予了?

你的m_VariableList是否实现了INotifyCollectionChanged ? 如果它不是ObservableCollection,则对其内容的更改不会自动反映在UI中。

问题不在于您提供的XAML中。 我在测试应用程序中成功使用了相同的XAML; 但是,我能够通过重新实例化m_VariableList变量来复制您遇到的问题。

当m_VariableList被赋予一个新实例或指向一个新对象时,它不会反映在ListBox中,因为该控件有自己的数据引用。 这可能不是您的问题的原因,但我建议查看您的代码隐藏,以确保变量不会被重新实例化。