我有一个属性IEnumerable<MyObject> MyObjects
在ViewModel。我希望第二个视图模型(引用第一个视图)中的某个命令在至少有一个对象填充MyObjects
时可执行,但在空时不可执行。WPF CanExecute不断Requoying
我CanExecute方法看起来是这样的:
private bool CanExecute()
{
return this.viewModel.MyObjects.Any();
}
我每当MyObjects
潜在价值被更改时引发一个PropertyChanged事件。
逻辑工作正常,但CanExecute()方法不断被调用 - 太多,它基本上冻结了整个应用程序。同时,MyObjects不会改变(我也不会为它提高PropertyChanged事件)。任何想法如何阻止CanExecute不断被重新查询?
然后你应该找到不必要的事件的来源。 –
根据您将命令绑定到哪个控件,它会在某些事件指示它检查CanExecute时执行。我相信它与CommandManager.RequerySuggested有关。 – Alan