▍1. MVVM: 关闭对话框
翻译 maninwest@Codeforge 作者 Cornelius Henning@Codeproject 我学习 MVVM 时遇到一个意外问题,关闭对话框时不如在旧的 WPF 中简单, 尤其是当你想避免背后的代码时。在此示例中,所有代码都在视图的 ViewModel 类中。 使用代码 整个项目是个可下载的 zip 文件。该项目是在Visual Studio 2012 中进行的,针对 .NET 4.5 平台。如要查看演示,请解压缩文件并进行构建。运行时,会显示一个用户,具有一个包含一个按钮的主窗口。单击按钮会打开新的具有两个按钮的对话窗口。单击任何一个按钮会执行有限的代码,然后对话框会关闭。 请注意,为了提高可读性,代码已经少得不能再少了。处理运行时错误的意外手柄也减到最少。如果你要使用此代码,务必要确保最终代码稳健且可处理任何意外或其他错误。 此代码中无使用的约束条件。你可以使用全部或者部分。 实现的说明 对话框的关闭由附加的属性控制。属性设置为 true 时,对话框会关闭。.以下是注册附加事件的代码: using System; using System.Windows; namespace MvvmDialogDemo.AttachedProperty { public static class CloseDialog { public static readonly DependencyProperty DialogResultProperty = DependencyProperty.RegisterAttached("DialogResult", typeof(Boolean?), typeof(CloseDialog),new PropertyMetadata(DialogResultChanged)); private static void DialogResultChanged (DependencyO