我需要根據在窗口中顯示的控件中觸發的單擊命令從ViewModel關閉模態窗口。WPF和MVVM - 從子窗口內關閉窗口
所以,我有MainViewModel,JimViewModel,JimWindow和JimControl。 MainViewModel創建一個JimWindow並將其DataContext設置爲JimViewModel。 JimWindow包含JimControl,其中包含一個按鈕。點擊這個按鈕時,我想觸發一個以某種方式關閉JimWindow的命令。
我已經看到了幾個問題,回答這關於從實際窗口關閉窗口(通過將窗口的實例傳遞給ViewModel上的命令),但它並沒有轉化爲我想要的去做。
我沒有使用框架,所以我沒有方便的使者來幫助我。誰能幫忙?是否以某種方式引用控件的父窗口的名稱?
自閉窗是嚴格觀點有關,我要說重寫事件調用命令(如果必要的話)並關閉窗口比在命令中提供該功能的視圖模型更好。 – chris 2015-02-09 16:32:38
但是這個電話會在哪裏結束?關閉窗口的按鈕位於窗口內的控件中。窗戶是否應該將自己的參照傳遞給控制? – jimbo 2015-02-09 16:39:04
函數將在窗口的上下文中被覆蓋。也就是說,重寫的類將是窗口,因此可以調用'Close()'。這將代碼添加到代碼應該稀缺的地方,但我不認爲它是屬於VM的代碼。我沒有足夠的經驗來了解所有其他可用選項。 – chris 2015-02-09 16:41:50