我习惯于通过在xaml中设置事件并链接到MainWindow后面的代码来开发WPF应用程序。这使得根据需要启用和禁用事件非常容易。我最近一直在学习MVVM模式,并开发了使用命令来处理事件的应用程序。问题是我不知道如何禁用事件命令。
我的具体情况是这样的: 我需要在加载或刷新数据时禁用一些过滤事件,以使它们不会连续触发...数据已被绑定,因此不应发生任何过滤事件。
过去,我做过这样的事情:
listView.SelectionChangedEvent -= new SelectionChangedEvent(event_method);
//Perform actions...
listView.SelectionChangedEvent += new SelectionChangedEvent(event_method);
我对MVVM的理解是,我可以使用RelayCommand或DelegateCommand并传入一个谓词,该谓词应基于布尔值禁用该命令。然后,我只需要在更改了布尔值之后调用RaiseCanExecuteCommandChanged()来更新Command。但是,我所有使该功能正常运行的测试都无法正常工作...
谁能张贴一个简短的示例来说明如何处理我在MVVM中描述的内容?我能找到的所有示例都是用于启用/禁用Button之类的控件的。。。我还没有找到任何东西来实际禁用Command的执行...
答案 0 :(得分:0)
要确保如果rake tmp:cache:clear
的值为CanExecute
,则不会执行命令,您可以编写装饰器:
false
现在使用该装饰器包装所有命令。