我有一个轻微的问题,我不知道是真的是一个问题,但在我的愤世嫉俗认为我正在做一些根本错误的事情。更改绑定ObservableCollection实例
我有一个属性是要显示的子模型的一个ObservableCollection视图模型:
public SeatingPlanItemCollection DisplayItems
{
get
{
return _displayItems;
}
private set
{
SetField(ref _displayItems, value,() => DisplayItems);
}
}
这然后通过XAML绑定到ItemControl的财产的ItemSource。从某些命令中,可以在模型中更改此集合,运行代码时一切正常,集合发生更改,ItemsControls可以及时快速完成刷新。但是我注意到,有时在调试时,更改速度会非常慢,并且会在输出窗口中显示一大堆绑定错误。只有在属性更改之前的任何时候我已经打入代码,才会发生这种情况。如果我处于调试模式,但在任何时候都没有中断,那么一切都很好,并且没有报告绑定错误。
考虑到这一点,这是有道理的,控件绑定到集合中的项目,然后集合被更改并打破绑定,集合然后引发它的集合更改事件,并视图重新绑定成功。
我想知道的是:
- 为什么只有绑定错误输出后,我已经分成的代码?
- 这是否值得担心,因为慢速度只有在闯入显然不会在生产中发生的代码后才显现出来? (虽然我认为在幕后我可能还没有意识到,但我注意到的主要问题是运行时环境将错误发送到输出窗口)。
- 如果是问题,应该如何处理更改ItemsControl绑定的集合?
希望已经够清楚了。
在此先感谢。
保罗
编辑
在一个点上我想改变集合的实例可能是这个问题,所以我决定,而不是专门的回收情况,当它需要更换时我清除它然后添加所有新项目,发生同样的问题。
我想你可能是对的,我原来的想法不是太在意它,但是这种心态有时会让我陷入困境,所以我想我会去调查。我拒绝了从详细到错误的数据绑定跟踪(我忘记了我已经把它变成了详细的昨天),它现在不会发生。感谢您的输入。 – 2012-02-17 15:10:02