2009-07-03 28 views
4

我正在使用一個香草WPF應用程序並將其轉換爲使用MVVM模式。在對代碼進行評估期間,我編寫了一些在轉換應用程序之前需要了解的主題列表。我的列表看起來有點像這樣:將WPF應用程序轉換爲MVVM時必須知道的事項的一般清單

  • 動態加載XAML(雖然這是針對我的應用程序)
  • 結合XAML來查看模型的命令(按鈕,工具欄,菜單項)
  • 熱鍵
  • 結合視圖模型命令事件(窗口大小的變化,鼠標事件等)
  • 處理對話框(消息框,文件對話框,用戶設計的對話框等)

我已經爲每件商品提供了各種解決方案,所以我不會問如何去做。我的實際問題是:我錯過了什麼?還有什麼我需要知道的?

看到它的另一種方法是如果我正在製作WPF WVVM工具包。它需要什麼樣的功能和功能,以便開發人員可以創建MVVM應用程序?

謝謝!

+0

你有博客嗎? :)我已經經歷了類似的清單,但並沒有像你所做的那樣提前完成。我善於把所有東西拼湊在一起,隨着我的進步而學習。我對你列表中的幾乎所有東西都有解決方案,但希望看到你的方法,這樣我就可以獲得(可能)不同的觀點。 – Dave 2009-12-29 16:20:16

回答

2

一些常見的功能,我認爲你已經得到了基本的MVVM的問題設置的基礎設施。你可能仍然需要的是「當我的應用程序變得對MVVM來說太複雜時,我該怎麼做?」這種情況的發生相當迅速 - 不僅僅是一些視圖,而且還會導致視圖模型爆炸,或者您獲得的整體視圖模型變得繁瑣而且很難維護。

我建議尋找複合WPF(棱鏡)框架作爲解決這個問題的一種方法。 Prism是一種架構框架,它簡化了將應用程序劃分爲彼此獨立或相互獨立的模塊。每個模塊可以有一個或兩個視圖(其中一個可能最常見),每個視圖都可以有自己的視圖模型。它以非常鬆散的方式在模塊之間組織通信非常出色。這些模塊加載到可根據需要配置的Shell窗口中。

希望有幫助!

0

您可能還需要像複製/粘貼搜索按鈕等

0

切換到MVVM時遇到的第一個問題是將事件/路由事件綁定到VM中的處理程序。沒有內置或默認的方式來做到這一點。我確實有一個幫手來實現它,但是它可能需要考慮的一個問題是,事件交付代碼背後也會破壞MVVM模式。

+0

我沒有使用代碼背後的一種方法是使用附加的行爲。在控件上和OnChange(我忘記了實際名稱)方法上使用附加屬性,您可以在其中附加您自己的事件處理程序。 – djcouchycouch 2009-10-17 17:26:26

相關問題