relay命令CanExecute返回不正确的值

时间:2013-01-04 00:17:40

标签: wpf data-binding mvvm-light relaycommand canexecute

我创建了一个非常标准的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));

客户是实例化类时的私有属性集。

1 个答案:

答案 0 :(得分:0)

(来自评论) 创建一个CanExecute方法以避免使用lambda表达式。

根据您的建议,看起来MVVM Light Framework的IsAlive属性会以某种方式干扰。如果您愿意,可以发布有关该问题的其他问题。此致!