我正在學習WPF和MVVM,並試圖強調良好的設計。我有很多有關WinForms和C#的經驗。這是概念性的,所以我不認爲我需要發佈代碼。WPF MVVM控件共享信息
我有一個管理「配置文件」的xaml窗口。左半部分是綁定到ViewModel的自定義Control樹視圖,該ViewModel讀取數據庫並創建一系列配置文件。各個配置文件的ViewModel包含一個數據庫ID等等。右半部分是另一個自定義控件,帶有一個ListView和它自己的ViewModel,用於讀取個人配置文件信息的數據庫。
這兩個部分都可以獨立工作,但現在我想將列表視圖與樹視圖選擇聯繫起來,以便列表視圖中的信息反映樹視圖選擇。做這個的最好方式是什麼?
treeview viewmodel提供了一個配置文件ID,可用於在列表視圖中查找配置文件信息。再次,目標是將這兩者聯繫在一起。我覺得我有幾個選擇:
-treeview的viewmodel可以在listview viewmodel中調用一個靜態方法來更新配置文件。
- 整個頁面可能包含具有兩個組件的成員視圖模型的視圖模型。
- 我可以以某種方式將treeviewss viewmodel的已知選定配置文件「路由」到xaml文件中的listview控件。
所有這些選項都很髒。再次我在這裏學習,並且想要強調良好的設計,因爲稍後這些小細節決定更大的決定。
和想法?
謝謝!
我不使用棱鏡/ CAL,其實這是我第一次聽說過它。正在使用它成爲一種常見的趨勢,我應該養成使用習慣...換句話說,我是否正在嘗試學習基本的WPF安裝結構和MVVM結構,進入一個受到傷害的世界? – bufferz 2009-11-17 17:27:33
它只是提供了一個非常好的框架來建立 - 繼承人的MSDN文章... http://msdn.microsoft.com/en-us/magazine/cc785479。aspx 但是你真正想要做的就是下載並加載微軟創建的StockTrader應用程序作爲示例... http://www.microsoft.com/downloads/details.aspx?FamilyId=6DD3D0C1 -D5B4-453B-B827-98E162E1BD8D&displaylang = en 這將向您展示如何將事物放在一起,以及我如何開始使用WPD和MVVM。希望這有助於... – 2009-11-17 17:37:37
謝謝,安迪。我花了一點時間瞭解棱鏡和它的內容。挖掘更深入,我使用和EventAggregator會完成我想要做的事情。這使我不僅僅是一行代碼的普遍方向。感謝您的輸入! – bufferz 2009-11-19 14:53:11