我无法理解:
但是,有时,View需要包含触发的按钮 ViewModel中的各种操作。 但ViewModel不得包含 单击按钮的处理程序,因为这将绑定ViewModel 特定的用户界面范例。
指挥的原因是什么?
答案 0 :(得分:1)
点击处理程序通常是由控件创建的事件。处理程序可以特定于您实际使用的控件。例如,您可以使用具有特定事件处理程序的事件创建自己的用户控件。
问题是您希望通过视图的实现来分离视图模型。我们不希望强制视图使用某些控件:可以在List
,ObservableCollection
,ListView
等中查看ListBox
或DataGrid
也就是说,使用点击处理程序或任何处理程序将导致强制视图使用或返回这些处理程序。 这是视图和视图模型之间的依赖关系。
因此,我们改用命令。它消除了这种依赖性,因为几乎任何控件都可以使用命令并在出现情况时发送命令事件(单击,拖放,等等)。
答案 1 :(得分:1)
我会尝试根据自己的经验给你一个实际的答案: