我有一个来自非WPF程序集的List<Foo>,我试图将其数据绑定到WPF <ListBox>。最初,列表项正确显示,但是当我向List<Foo>添加新项时,listbox不会添加列表项。我该如何告诉列表框重新绑定/更新/刷新数据并显示新项目?
我有一个来自非WPF程序集的List<Foo>,我试图将其数据绑定到WPF <ListBox>。最初,列表项正确显示,但是当我向List<Foo>添加新项时,listbox不会添加列表项。我该如何告诉列表框重新绑定/更新/刷新数据并显示新项目?
虽然使用ObservableCollection是最好的方法,但回答实际问题的方式是手动调用BindingExpression.UpdateTarget来更新。
感谢您发布此答案。即使您使用ObservableCollection,如果集合不在UI线程中,您可能仍需要使用BindingExpression.UpdateTarget。我一直在编写一些多线程WPF应用程序,并发现当我将模型代码移动到另一个线程时,我不得不剥离数据绑定,因为我无法确保更新系统真正起作用。虽然我认为数据绑定是一个很好的概念,但是我认为数据绑定系统的不透明性对我采用它构成了实际障碍。(抱歉发牢骚!)再次感谢,Adam。