2012-09-15 28 views
-2

可能重複:
Handling Dialogs in WPF with MVVM一些通知圖案MVVM

我有一個嚴重的疑問,如何實現以下。

  1. 從視圖執行動作綁定到我的視圖模型
  2. 根據條件,請求向用戶

製成現在我使用System.Windows.MessageBox.Show此目的,我不知道這是否合適,也希望有一個自定義對話框。

技術或模式,可以幫助我解決這個問題

+0

我建議尋找MVVM Light的'Messenger'或Prism的'EventAggregator'等消息系統來實現Views和ViewModels之間的通信,因爲它將保持兩層完全分離,同時允許它們之間的通信 – Rachel

回答

0

首先,如果你正在做MVVM,然後you should be using an MVVM framework。例如,您可以使用Caliburn.Micro顯示另一個窗口(使用窗口管理器),或者在視圖內的其他元素的頂部顯示現有視圖的一部分。無論採用哪種方式,如果您想堅持使用消息框,那麼您需要針對視圖模型中的抽象進行工作,以便您可以單元測試視圖模型,而無需生成等待用戶的測試對話框輸入。

+0

我使用MVVM Light ,我需要的是一種方式來顯示像「MessageBox」,但更好看。 – rkmax

+0

那麼,正如我所說的,最好的選擇是創建一個父視圖模型作爲依賴的接口,並且此接口應該提供一種顯示對話框和返回對話結果的方法。然後,在你的實現中,你可以實例化一個新的模式窗口,或者改變一個布爾屬性值(例如)你的shell視圖模型,你的shell視圖被綁定到打開/關閉對話框視圖的覆蓋層。 – devdigital