wpf - 关闭命令 WPF

标签 wpf events mvvm

我刚刚开始学习WPF。目前,我的主窗口上有 MenuItem File -> EXIT。

我想知道如何向退出菜单项添加功能。我认为有 3 个主要选择

1) 将事件处理程序添加到退出菜单项的 Click 事件。然后在窗口代码后面编写事件处理程序

2) 添加关闭命令以退出菜单项,并在主窗口中添加处理该命令的绑定(bind)。同样,这涉及将代码添加到后面的窗口代码中。

3) 将命令添加到 Exit menuItem,该命令调用 ViewModel 中的方法。这会从 View 代码后面删除代码,但这意味着 ViewModel 需要保存对 View 的引用。

哪种方法最适合这种情况?

我不想因为没有将任何代码放入 View 代码隐藏而陷入困境。然而,由于这只是真正涉及 View 的操作,因此方法 1 或方法 2 可能是最好的。有什么想法吗?

最佳答案

如果它是一个基本的退出命令,我认为将其放在后面的代码中没有问题。

如果您开始想在退出期间执行其他代码,我会将您的退出代码放在 ViewModel 中的某个位置并绑定(bind)到它,或者使用 MVVM Light 的 Messenger 类或 Prism 的 之类的东西EventAggregator 引发 CloseApplicationEvent 以便其他对象可以在关闭期间自行处理。

关于wpf - 关闭命令 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206364/

相关文章:

c# - 将 ContextMenu 放入 WPF 样式中

java - 当我覆盖该函数时,WindowListener 不起作用

ios - 模型间/NSManagedObject 通信

java - JFrame 在 Thread.sleep(int) 期间处于非 Activity 状态

Android - 绑定(bind)(观察)对象属性的 MVVM 架构

wpf - ActualWidth 作为 From WPF 动画的值

wpf - 每个对 ResourceDictionary 的引用是否创建一个新实例,或者 ResourceDictionaries 是否有缓存机制

android - 如何使用可能的待处理 Intent 从服务导航到导航 fragment ?

c# - 自定义 MarkupExtension 仅在设计时导致 TypeInitializationException

android - 如何在 xml 数据绑定(bind)中使用 Singleton 类方法?