将WPF命令作为独立对象实现是否可行?如果是这样,通常如何完成?我看到的关于命令的大多数示例通常涉及使用RoutedCommand,RoutedUICommand或其他一些ICommand实现,如RelayCommand。这些命令在MVVM模式中的工作方式是通过属性公开这些类型命令之一的实例。在ViewModel内部,该命令的逻辑在ViewModel上作为方法实现,然后作为委托传递给命令对象。WPF中的独立命令对象
据我所知,“经典”命令模式是将每个命令都实现为自己的独立对象,如OpenCustomerViewCommand。由于逻辑将完全封装在自己的对象中,因此它可能会在我的应用程序的其他部分重用。例如,如果我可以在我的应用程序的多个位置打开CustomerView,那么可以在每个可以访问CustomerView的ViewModel上简单创建OpenCustomerViewCommand的实例,而不是将该方法复制并粘贴到每个ViewModel中,并将代理传递给RelayCommand。如果我理解正确,那么预定义的应用程序命令(如“剪切”和“粘贴”)就是这样工作的。
对我来说,必须提供ViewModel内部的逻辑似乎会稍微减少命令模式的值。我想我不明白这样做的主要区别,并有一个代码实现UI事件的命令处理程序。是否有任何理由我应该使用RoutedCommand模式而不是上面描述的更经典的方法?