我有一个小问题,我不确定这是一个真正的问题,但我内心的愤世嫉俗者认为我做的事情从根本上是错误的。
我有一个带有Property的视图模型,它是要显示的子模型的ObservableCollection:
public SeatingPlanItemCollection DisplayItems
{
get
{
return _displayItems;
}
private set
{
SetField(ref _displayItems, value, () => DisplayItems);
}
}
然后通过XAML将其绑定到ItemControl的ItemSource属性。从某些命令可以在模型中更改此集合,在运行代码时一切正常,集合发生变化,ItemsControls可以非常快速地刷新。但是我注意到有时在调试时变化会非常慢,并且输出窗口中会显示一大堆绑定错误。只有在我在属性更改之前的任何时候进入代码时才会发生这种情况。如果我处于调试模式但没有在任何时候中断,那么一切都很好,并且没有报告绑定错误。
考虑到这一点,这确实有意义,控件绑定到集合中的项目,然后更改集合并破坏绑定,然后集合引发它的集合更改事件并且视图重新绑定成功。
我想知道的是:
希望足够清楚。
提前致谢。
保
修改
有一次我认为更改集合的实例可能是问题,所以我决定改为专用集合实例,当需要更改时我清除它然后添加所有新项目,发生了同样的问题
答案 0 :(得分:1)
我注意到输出绑定错误到输出窗口显着减慢了WPF因某些原因我自己已经注意到了这一点。我把它关掉如果我不需要它。