ListBox数据绑定和不变性

时间:2016-10-13 20:18:19

标签: wpf xaml

我在ListBox数据绑定和不变性方面遇到了一些问题。我有一个模型提供List的一些元素和一个ViewModel,它接受这些元素并将它们放到绑定到ObservableCollection的{​​{1}}。

然而,这些元素不可变,因此当它们发生变化时 - 当用户更改ListBox的选择或在其他一些场景中发生时 - 模型会触发事件并且ViewModel会检索新ListBox个新元素实例并重新填充List

这种方法效果很好 - 尽管显然不是最佳的 - 当用户通过鼠标(点击)与ObservableCollection交互但在使用键盘时失败可怕(选项卡聚焦当前元素然后使用鼠标箭头或进一步标记)。出于某种原因,ListBox始终会重置为ActiveSchema [*]的第一个元素。

为模式用户切换到Schemas setter,然后为null,最后再次为第一个值。出于某种原因,当通过鼠标调用时,最后两个事件都不会发生。

PS:可以找到完整代码here

PPS:我知道我应该重新修改模型,以便公开ActiveSchema变异,但是有理由为什么抛弃一切并从头开始创建它只是更可靠。

ObservableCollection

0 个答案:

没有答案