我将Mvvm Light更新为版本5并注意到它已RelayCommand停止工作.
问题似乎CanExecute()是没有被调用来验证.它只验证一次,就像加载窗口时一样.
这可能是最近更新中的错误还是我需要在XAML中更改某些内容?
在更新之前一切正常.我正在使用WPF.
Voj*_*nal 10
看到这个MVVM Light 5问题:
WPF是唯一一个使用CommandManager在ICommands上自动引发CanExecuteChanged事件的XAML框架.我从不喜欢这种方法,因为"神奇"部分,但这是WPF的"功能",当然我必须支持它.这里没问题.
在V5中,我转移到了所有最新版本的XAML框架的可移植类库,包括WPF4.5.不幸的是,PCL中没有CommandManager,我不得不承认我没有意识到这一点.所以当然现在自动部件不再起作用了.再一次,很抱歉.
我不希望你现在到处都提出CanExecuteChanged,而不是在你的应用程序中使用CommandManager之后,这是WPF团队的意图.因此,我将尝试在WPF4.5版本的工具包中找到恢复CommandManager用法的方法.
绝对不寻找借口;)但希望解释为什么问题出现有助于理解这一点.在我找到一种方法在PCL版本中解决这个问题之前,这将是我的第一号优先事项.与此同时,正如我之前提到的,我认为回到V4.4.32.7应该可以解决这个问题.如果没有,请告诉我.
因此,临时建议的解决方案是恢复到以前的版本.我做到了它并且有效.
我同意CommandManager正在做"魔术".一旦我在CanExecute条件中有空引用异常,因此我已经获得了像Windows Solitaire中的卡一样的错误消息的无休止循环.如果我开始一个新项目,我宁愿不使用这个"魔术",但改变现有的已经部署的项目将是非常痛苦的.
| 归档时间: |
|
| 查看次数: |
2549 次 |
| 最近记录: |