我最近开始学习 MVVM,到目前为止它已经引起了更多的问题。所谓的松散耦合——对我来说更像是“弱跟踪行为”。我正在使用 Prism.wpf。创建了委托命令。在 CanExecute 中指定 bool 模型变量。每次变量更改时,我都会调用 RaisePropertyChanged()。但是命令挂起的按钮不响应更改。还应该指定什么,以便每次通过模型更改进行更改时调用 CanExecute?
我最近开始学习 MVVM,到目前为止它已经引起了更多的问题。所谓的松散耦合——对我来说更像是“弱跟踪行为”。我正在使用 Prism.wpf。创建了委托命令。在 CanExecute 中指定 bool 模型变量。每次变量更改时,我都会调用 RaisePropertyChanged()。但是命令挂起的按钮不响应更改。还应该指定什么,以便每次通过模型更改进行更改时调用 CanExecute?
DelegateCommand接受一个CanExecute函数来测试一些条件并返回一个bool-value 指示命令是否可以在此刻执行。这是一个简单的例子:我不使用Prism,所以我的实现可能会有所不同,但你应该了解原理
那些。在每次更改时
Text,我们都会告诉命令检查可运行性,命令会调用它拥有的方法:_ => !string.IsNullOrEmpty(Text)并从中获取结果。最终: