MVVM模式下窗口关闭
public MainWindow() { InitializeComponent(); this.DataContext = new MyViewModel(this); }
这是解决MVVM下窗口关闭的一个简单方案,但这样做的话,实际是将窗口传递进VM中,这是跟MVVM的设计模式相违背,因为MVVM就是为了解耦,这样做其实跟直接在VIew中关闭区别不大,要真正进行MVVM的设计,还需要进行修改。class MyViewModel { /// <summary>
/// 添加Window属性
/// </summary> private Window window { get; set; } /// <summary> /// 关闭窗口 /// </summary> public void WindowClose() { this.window.Close(); }/// <summary> /// 构造函数,接收window作为参数 /// </summary> public MyViewModel(object window) { this.window = (Window)window; this.WindowClose(); } }