常用RoutedCommand可以利用.net内置的命令,通过设定命令源并在其之上设定command以及命令目的地后,接着利用commandbindings对其执行进行监控,从而利用commandbinding能够加入自定义的视图逻辑或业务逻辑。
自定义命令可以考虑继承ICommand接口和ICommandSource接口,分别得到命令对象以及命令源对象,此时可通过自定义命令目的地或者扩展目的地对象(继承特定接口)从而扩展出新的特性,在其之上可以方便的加入自定义的视图逻辑或业务逻辑。
以个人目前的理解来看,如果利用内置的命令,则有利于将变化的逻辑集中到特定的commandbinding中,此时将会与命令源以及命令目的地无关,也就会减少控件等相关的逻辑复杂度;如果利用自定义命令则一来增加了对象数量,而来命令执行逻辑则与命令目的地这个UI视图相关,为了职责单一原则,则要求命令执行逻辑尽可能少的牵扯到业务逻辑。