8

我只是在谷歌上搜索 WPF 命令和 WPF 中的事件之间的区别。我登陆了讨论正在进行的stackoverflow的下一页。

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

我只能从那里理解

  1. 命令可以写在业务层,而事件只能写在表示层中
  2. 单个命令可以与多个控件关联,但事件只能与一个控件关联。

我对吗?它们之间还有其他区别吗?

4

2 回答 2

6

你是对的,但只是部分。

  1. 主要的担忧是事件不适合MVVM范式。简单地说事件很难插入,你不能绑定到事件处理程序。尽管如此,在表示层中使用命令是没有限制的,但这样做没有任何好处。您可以在 BLL 中捕获控件并将事件处理程序附加到它,但这种情况更糟。
  2. 不会。只要事件参数类型匹配,事件处理程序也可以关联到不同的控件。

命令还为您提供了一些免费的好处。例如,如果CanExecute()返回 false,则使用命令元素将被禁用。另一个好处是使用命令迫使您遵循关注点分离原则。

于 2013-04-17T12:05:21.567 回答
5

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

于 2013-04-17T12:04:24.507 回答