有人能告诉我在WPF中使用命令(Command)和事件(Event)的优势吗?命令(Command)和事件(Event)是否会出现内存泄漏?哪种方式更快?它们有什么缺点?
有人能告诉我在WPF中使用命令(Command)和事件(Event)的优势吗?命令(Command)和事件(Event)是否会出现内存泄漏?哪种方式更快?它们有什么缺点?
尽管命令(Commands)和事件(Events)可能会有重叠,但它们是两种不同的东西。命令传达的是“做这个!”的信息,而事件传达的是“这刚刚发生了!”的信息。因此,你可以有一个CloseWindowCommand来关闭窗口,但窗口可能会有一个ClosingEvent来告诉订阅对象它正在关闭。
命令是一种更标准的集成事件方式。它们比事件更有用,因为借助它们,您可以定义一个单一任务(命令)并从不同位置使用它。例如,您可以定义一个保存命令,并同时使用菜单项、上下文菜单项和按钮来使用它。这样,您可以将任务集中在一起。此外,命令支持数据绑定,这是 WPF 应用程序的一个非常强大的功能。据我所知,命令会导致某些类型的内存泄漏,但您可以使用许多解决方法来避免这种情况。我必须补充说,MVVM 设计模式也使用命令作为设计 WPF 应用程序的标准方式。与事件一起工作要简单得多,但命令提供了更强大的设计能力。但您必须知道,并不总是可以使用命令代替事件。有许多地方只能使用事件。
命令是路由事件。