2013-05-11 67 views
0

我剛剛有3個課程:主題,示例和練習。主題是Example和Exercise鏈接的主要類。在我的窗口(非MVVM)中,我正在用我的主題填充一個列表框,並且在列表框中選擇一個主題所綁定的項目時,我將獲得該主題的ID並再次填充2個列表框(用於示例和練習) )與該主題相關。MVVM新手:如何鍛鍊視圖

由於我是MVVM的新手,仍然試圖理解它,所以我很遺憾要如何將其轉換爲MVVM。我應該爲每個3個類(模型)提供3個視圖(3個用戶控件?)嗎?在我目前的設置中,他們都在1個窗口中。

回答

0

這完全取決於你。

通常情況下,你如何將狀態和行爲分爲不同的類? MVVM中沒有額外的規則。

考慮重用和單一責任。這適用於View,ViewModel和Model類。

可以在多個類中組合一個View,ViewModel和Model。我發現的一件事是,雖然可以重複使用一個ViewModel用於多個視圖(實際上MVVM狀態的一些介紹作爲好處),但我發現一般情況下視圖在幾次發佈後會發生變化,我們很快需要爲每個視圖創建一個單獨的ViewModel。再次,這不是MVVM的要求;這是很好的舊對象方向。

+0

在我目前的設置中,Example和Exercises的列表框非常相似,它們只是綁定到不同的對象(不同的屬性),除了它們是相同的。我可以使用哪種視圖,既適用於兩個對象,也適用於每個對象的重用?或者,我是否會認爲我只能使用兩個對象的View? – 2013-05-11 08:26:58

+0

如果綁定不同(屬性),則重新使用列表框變得更加困難。一種重用它的方法是通過爲示例定義一個DataTemplate,併爲練習定義一個。在列表框(視圖)中分配兩個數據模板。正確的將由WPF選擇。請注意,這是一個選項,只要您希望列表框具有不同的行爲或添加視覺效果,您就可以創建兩個用戶控件。 – 2013-05-11 08:39:19

+0

謝謝,會試試看。但在窗口中,我可以使用單個視圖的兩個實例嗎?因爲我正在使用TabControl,所以在練習中使用了1個選項卡和1個選項卡。在每個標籤中都有一個用於顯示記錄的列表框。 – 2013-05-11 09:06:14