问题很简单。在MVVM中,ICommand实现是否有责任执行CanExecute和Execute logic ,或者调用逻辑,该逻辑位于ViewModel的控制之下?
我在问,因为当我尝试在ICommand实现中实现逻辑时,感觉在Command和ViewModel以及其他对象之间发生了很多紧密耦合。但是当我只尝试从ICommand实现调用方法时,我感觉到我有很多过多的代码用于方法调用。如果我更清楚ICommand实施的单一责任,我认为这个问题会自行解决。
逻辑还是调用?
答案 0 :(得分:2)
调用。
它是ViewModel中的一个占位符,正在从您的View中调用。然后它应该在正确的情况下(可以执行)指导您正确的方法(执行)。
MVVM比其他方法更冗长,编写锅炉代码可能有点烦人,但你获得的回报非常大。