我创建了一个非常标准的 MVVM Light RelayCommand,canExecute 参数为:
() => (customer.Regions.Count > 0)
必要时我打电话RaiseCanExecuteChanged();
给 canExecute 并没有正确重新评估。然后我也像这样手动调用它:var canExecute = myCommand.CanExecute(null);
,它仍然是错误的。在 I do 之后的下一条语句中var foo = (customer.Regions.Count > 0)
,它返回正确的结果。这里发生了什么?
命令定义:
SaveCustomerRegionsCommand = new RelayCommand(SaveCustomerRegions, () => (customer.Regions.Count > 0));
customer 是实例化类时设置的私有属性。