將WPF命令作爲獨立對象實現是否可行?如果是這樣,通常如何完成?我看到的關於命令的大多數示例通常涉及使用RoutedCommand,RoutedUICommand或其他一些ICommand實現,如RelayCommand。這些命令在MVVM模式中的工作方式是通過屬性公開這些類型命令之一的實例。在ViewModel內部,該命令的邏輯在ViewModel上作爲方法實現,然後作爲委託傳遞給命令對象。WPF中的獨立命令對象
據我所知,「經典」命令模式是將每個命令都實現爲自己的獨立對象,如OpenCustomerViewCommand。由於邏輯將完全封裝在自己的對象中,因此它可能會在我的應用程序的其他部分重用。例如,如果我可以在我的應用程序的多個位置打開CustomerView,那麼可以在每個可以訪問CustomerView的ViewModel上簡單創建OpenCustomerViewCommand的實例,而不是將該方法複製並粘貼到每個ViewModel中,並將代理傳遞給RelayCommand。如果我理解正確,那麼預定義的應用程序命令(如「剪切」和「粘貼」)就是這樣工作的。
對我來說,必須提供ViewModel內部的邏輯似乎會稍微減少命令模式的值。我想我不明白這樣做的主要區別,並有一個代碼實現UI事件的命令處理程序。是否有任何理由我應該使用RoutedCommand模式而不是上面描述的更經典的方法?