我工作的一個MVVM應用程序,使用MVVM輕,整體上我發現它非常漂亮地工作着去除System.Windows.MessageBoxResult的依賴。然而,我有一個嘮叨的問題,希望有人能幫忙。MVVM光:如何從DialogMessage
我使用的是從VM發送的DialogMessage
實例視圖中顯示的對話框。結果會通過回調發回給我的虛擬機,這一切都很好。
然而對話框(OK,是,否,取消等)的結果發回的enum System.Windows.MessageBoxResult
中的一員。這似乎違背了View/ViewModel與我的分離,MessageBoxResult
顯然是一種來自UI的類型,所以VM不應該依賴於這個或任何來自System.Windows
的命名空間。
我正在尋找的是好歹用DialogMessage
一個替代回調如Action<UserResult>;
而非Action<System.Windows.MessageBoxResult>;
,其中UserResult
是我定義爲代表的MessageBoxResult
用戶選擇,而不依賴的類型。
這是可能的,或者我是不是太嚴,我希望保持UI概念了VM的?
@Blachshma感謝您的答覆。我可能會用你的建議來包裝DialogMessage並轉換結果。 – Darran