我创建了一个非常标准的MVVM Light RelayCommand,其canExecute参数为:
()=> (customer.Regions.Count> 0)
必要时我调用RaiseCanExecuteChanged();
并且不会正确地重新评估canExecute。然后我也像这样手动调用它:var canExecute = myCommand.CanExecute(null);
,它仍然是错误的。在我做var foo = (customer.Regions.Count > 0)
之后的下一个语句中,它返回正确的结果。这是怎么回事?
命令定义:
SaveCustomerRegionsCommand = new RelayCommand(SaveCustomerRegions, () => (customer.Regions.Count > 0));
客户是实例化类时的私有属性集。
答案 0 :(得分:0)
(来自评论) 创建一个CanExecute方法以避免使用lambda表达式。
根据您的建议,看起来MVVM Light Framework的IsAlive属性会以某种方式干扰。如果您愿意,可以发布有关该问题的其他问题。此致!