我已经将代码缩减为尽可能少的测试用例,但仍然很大。我希望它非常简单。Foo具有Bar和Baz类型的ObservableCollection。Baz在Foo中保留对Bar对象的引用的ObservableCollection。主窗口具有一个Foo中所有Baz对象的ListBox,这些对象通过转换器使其成为纯字符串。SelectedItem设置为窗口的DependencyProperty,以方便参考。在窗口的后面,列出了Foo中所有Bar对象的列表,可以通过此DependencyProperty(SelectedBaz)添加/删除。出于调试目的,添加了另一个ListBox,其中显示了SelectedBaz的Bar对象。发生的情况是,SelectedBaz被更新,Foo持有的ObservableCollection中的Baz被更新,Foo的Baz集合的CollectionChanged事件被触发,但是带有转换器的ListBox从未更新。我尝试在整个过程中撒一些'Mode = TwoWay',但没有任何运气(由于它们没有效果,因此删除了)。我已经尝试过使用SelectedValue与SelectedItem(从我的研究看来,SelectedItem是执行此操作的正确方法,因此我将其保留了下来)。我尝试在添加/删除按钮单击中手动触发Baz ListBox中的绑定目标的更新,但这没有任何效果。然后,我感到沮丧并尝试破解它,并使用一个带有SelectedIndex,MultiBinding,MultiValueConverter等的整数,等等。我发现我也遇到了同样的问题。Baz ListBox绑定中的源已更新,但目标未更新。
1 回答
- 1 回答
- 0 关注
- 289 浏览
添加回答
举报
0/150
提交
取消