1
问题很简单。在MVVM中,执行CanExecute和Execute 逻辑或调用逻辑位于ViewModel的控制下是否是ICommand实现的责任?在MVVM中,ICommand实现负责什么?执行或调用?
我在问,因为当我尝试在ICommand实现中实现逻辑时,感觉Command和ViewModel以及其他对象之间有很多紧密耦合。但是当我只尝试从ICommand实现中调用方法时,我感觉到我有很多过多的代码来实现方法调用。如果我对ICommand实现的单一责任更加清楚,我认为这个问题会自行解决。
逻辑或调用?
还值得注意的是,一个常见的错误是具有实现级命令名称,而不是功能。例如,如果您希望单击时进行列表刷新,我已经看到人们将该命令标记为“MouseClick”,并将其绑定到鼠标左键单击。这是错误的;该命令应该描述它的功能效果,然后绑定应该给你上下文。在这个例子中,鼠标点击事件应该绑定到ListRefresh命令。 –
我同意,好的先生。对你的赞赏:) – Noctis