WPF中的命令和事件有什么区别?

8
我刚刚在谷歌上搜索了WPF Command和WPF Event之间的区别。我发现了StackOverflow的一个页面,讨论正在进行中。
链接:WPF Command 和 Event 有什么区别? 我只能从中理解以下内容:
1. 命令可以在业务层编写,而事件只能在演示层编写。 2. 单个命令可以与多个控件关联,但事件只能与一个控件关联。
我是正确的吗?它们之间还有其他区别吗?
2个回答

6

你说得没错,但只是部分正确。

  1. 主要问题在于事件不太适合MVVM模式。简单来说,事件很难插入,无法绑定到事件处理程序。尽管在表示层中使用命令没有限制,但这样做没有什么好处。同样,您可以在BLL中捕获控件并将事件处理程序附加到它,但这种情况甚至更糟。
  2. 不。只要事件参数类型匹配,事件处理程序也可以关联到不同的控件。

此外,命令还为您提供一些免费的好处。例如,如果CanExecute()返回false,则使用命令元素将被禁用。另一个好处是使用命令强制您遵循责任分离原则。


5

事件是在UI中发生某些事情时触发的触发器。 命令是您的领域模型处理此事件的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接