我目前正在創建一個「嚮導」來在我的程序中創建新項目。我有一個即將完成的解決方案,但它不覺得「正確」,並開始考慮其他解決方案。也許應該注意我也使用MVVMLight。在wpf中創建嚮導
我目前的解決方案:
我有一個窗口和窗口包含自定義用戶控件(它們所代表的嚮導的每一頁)。
無論是窗口和用戶控件共享同一個視圖模型
- 當您單擊後退/下一個視圖模型處理,應該是可見
的問題,這其中一個用戶控件我不喜歡共享視圖模型。我有一個共享視圖模型,因爲所有頁面在同一個對象上配置不同的東西,並且更容易遵循。但同時,視圖模型包含了很多單個用戶控件不需要的東西(例如,只有一個頁面需要添加/編輯過濾器的方法)。如果我想讓它們用於除嚮導以外的其他功能,也很難在以後重新使用用戶控件。
那麼我應該爲窗口和每個用戶控件創建不同的視圖模型,並使用MVVMLights MessengerInstance在視圖模型之間發送消息?我覺得這樣更清潔,但作爲一個讀者,它可能很難遵循(當我發送消息的時候,我總體感覺到的一些東西)?
與Messenger的它會是這樣一個流程:
- 用戶輸入「頁」
- 用戶點擊上的所有信息下一個(屬於窗口)
- 窗戶查看模型必須向用戶控件發送消息以檢查所有數據是否有效
- 用戶控件檢查數據,如果數據有效,則必須發回。如果有效,則告訴下一頁可見,如果不顯示錯誤消息。
因此,我不需要使用共享視圖模型解決方案來回傳輸大量消息。
還是有更好的解決方案,我應該做的?
我看不出與共享視圖模型的一個問題。您可以爲單個用戶控件的視圖模型定義單獨的界面。然後,您的具體視圖模型實現所有這些模型,並使視圖與視圖模型解耦。 –