|
|
1
39
与事件处理程序相比,命令提供了两个主要好处:
我更喜欢在RealProject中使用命令,尤其是如果您想使用M-V-VM。 我没有听说任何与命令有关的内存泄漏。 事件可能更快,但差异不应该太大——我在项目中使用命令已经两年了,没有任何性能问题。 有关命令的详细信息,请参见 Commanding Overview ( archive )( v4 |
|
|
2
36
因此,您可能有一个用于关闭窗口的CloseWindowCommand,但该窗口可能有一个ClosingEvent,告诉订阅对象正在关闭。 |
|
|
3
5
命令是集成事件的更标准的方式。可以比事件更有用,因为在它们的帮助下,您可以定义单个任务(命令)并从不同的位置使用它。例如,您可以定义保存命令并同时使用菜单项、上下文菜单项和按钮来使用它。通过这种方式,您可以将任务集中化。命令还支持数据绑定,这是WPF应用程序的一个非常强大的功能。据我所知,命令会导致某些类型的内存泄漏,但您可以通过使用许多变通方法来避免这种情况。我必须补充一点,MVVM设计模式还使用命令作为设计WPF应用程序的标准方式。处理事件要简单得多,但命令提供了强大的设计。但现在您必须知道,您不能总是使用命令而不是事件。有很多地方你只能使用事件。 |
|
4
0
此外,WPF4.0允许绑定到命令定义。这使得从视图模型中公开命令变得更加容易,从而帮助您将逻辑与UI问题分离。 |
|
|
5
-4
命令是路由事件。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 2 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |