1
問題很簡單。在MVVM中,執行CanExecute和Execute 邏輯或調用邏輯位於ViewModel的控制下是否是ICommand實現的責任?在MVVM中,ICommand實現負責什麼?執行或調用?
我在問,因爲當我嘗試在ICommand實現中實現邏輯時,感覺Command和ViewModel以及其他對象之間有很多緊密耦合。但是當我只嘗試從ICommand實現中調用方法時,我感覺到我有很多過多的代碼來實現方法調用。如果我對ICommand實現的單一責任更加清楚,我認爲這個問題會自行解決。
邏輯或調用?
還值得注意的是,一個常見的錯誤是具有實現級命令名稱,而不是功能。例如,如果您希望單擊時進行列表刷新,我已經看到人們將該命令標記爲「MouseClick」,並將其綁定到鼠標左鍵單擊。這是錯誤的;該命令應該描述它的功能效果,然後綁定應該給你上下文。在這個例子中,鼠標點擊事件應該綁定到ListRefresh命令。 –
我同意,好的先生。對你的讚賞:) – Noctis