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

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

WPF Command和Event有什么区别?

我只能从那里了解

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

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

你是对的,但只是部分的。

  1. 主要关注的是事件不适合MVVM范例。 简单地说事件几乎不可插入,您无法绑定到事件处理程序。 然而,在表示层中使用命令没有限制,但这样做没有任何好处。 除了你可以在BLL中捕获你的控件并附加事件处理程序,但这种情况更糟。
  2. 不可以。只要事件参数类型匹配,事件处理程序也可以与不同的控件相关联。

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

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