[英]WPF Multiple windows with MVVM
使用MVVM處理多個窗口時,最常見的\\最佳實踐是什么? 我有一個帶有按鈕的窗口,單擊該按鈕時,我想打開第二個窗口並關閉第一個窗口。 我該如何使用MVVM? 每個窗口都應該有一個MainViewModel實例嗎? 還是應該只有所有窗口將使用的MainViewModel的一個實例?
謝謝!
Caliburn.Micro建議使用一個稱為Conductor的概念來很好地處理這種情況。
您可以通過使MainViewModel
繼承來自Conductor<T>.Collection.OneActive
或Conductor<T>.Collection.AllActive
來管理一個或多個屏幕的生命周期,具體取決於一次可以顯示多少個活動窗口。
它持有Items
是目前進行的項目,並提供OnActivate
和OnDeactive
方法,在那里你可以實現你的激活和失活的邏輯。
這是一個非常強大的框架,但需要您將Caliburn.Micro納入項目並進行自舉,如果使用其他MVVM框架,可能會很麻煩。 但是,您仍然可以實現此概念,或在其他框架中尋找類似的實現。
嘗試在其中使用“框架”和“頁面”。 我認為這是最適合您的解決方案。
您有兩種選擇:
我不知道您是否正在使用特定的MVVM框架(例如Caliburn.Micro,MVVM-light等),因此,如果您正在尋找使用依賴注入的通用解決方案,那么您會發現很多不錯的文章。
我建議您閱讀以下內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.