wpf 在mvvm模式下通過命令關閉子窗體

2021-08-25 14:06:35 字數 907 閱讀 8318

我們知道通過註冊事件直接可以在後台用this.close();方法進行直接關閉窗體。但是當我們用了mvvm 模式後,**的分層和規範讓我們不好再用傳統的方式進行關閉視窗,那麼在mvvm 下我們如何通過命令的方式下關閉視窗呢?

利用view裡的isenable屬性

在子窗體的屬性中使用isenable . 如下:

在子窗體的xml.cs檔案下編寫如下**:

子窗體的建構函式新增註冊事件

///子窗體建構函式

public settingparameter()

/// /// 關閉子窗體

///

///

///

private void settingwindow_isenabledchanged(object sender, dependencypropertychangedeventargs e)

}

settingviewmodel 中 的屬性如下:

private bool isclosewin = true;

/// /// 與view的isenable屬性繫結。當為false時,關閉view。

/// 當該屬性更改時通知客戶端。

///

public bool isclosewin

set}

前台view 對應的關閉按鈕如下:

settingviewmodel 對應的命令方法如下:

在 WPF 程式中使用 MVVM 模式

mvvm 模式是乙個很久之前的技術了,最近因為乙個專案的原因,需要使用 wpf 技術,所以,重新翻出來從前的一段程式,重溫一下當年的技術。mvvm 實際上涉及三個部分,model,view 和 viewmodel 三者的關係如下圖所示。在三部分的關係中,檢視顯示的內容和操作完全依賴於 viewmod...

WPF隨筆(十三) MVVM模式下的視窗管理

使用mvvm模式的wpf專案和傳統的使用事件驅動模式的wpf在處理邏輯有所不同,即使最簡單的開啟視窗也有很大差異。public static class windowmanager 註冊視窗 public static void regiter string key,type t 移除視窗 publ...

WPF隨筆(十二) 使用MVVM模式

規模稍大的wpf專案一般會採用mvvm模式,常見的框架有prism mvvmlight caliburn等。今天就從頭開始建立乙個使用mvvm模式的wpf專案,對mvvm也能有乙個更好的了解。實現inotifypropertychanged介面是為了利用wpf的資料繫結特性,當資料來源發生變化時,能...