2009-07-30 50 views
3

我想將我的視圖項目分割爲多個模塊。 我想有一個主要項目,可以參考所有模塊,這個主要項目將從模塊中生成視圖。如何將視圖分割爲m-v-vm中的模塊

我的問題是我如何將應用程序的所有樣式綁定到其他模塊?

它會自動識別它們嗎?

以及視圖模型模板將如何定位?因爲現在他們r在資源字典,我合併在app.xaml

其中shpuld我把它們(我希望他們在他們的模塊項目), 我如何加載thos資源?

回答

1

你想是很容易實現,如果你使用棱鏡什麼: http://www.codeplex.com/CompositeWPF

還有大量的樣本,讓你在那裏開始的。

你問的是,唯一的問題是不是由棱鏡回答是ResourceDictionaries,但有幾個方法可以解決,但我認爲這是最好的辦法:Composite WPF (Prism) module resource data templates

第一個答案應該讓你那裏。你會在你的模塊中失去一點設計時間的支持,但是在運行時這一切都應該正確地結合在一起。

+0

+1鏈接 - 一個有趣的方法。 – 2009-08-03 14:01:40

2

很好的問題。正如Anderson Imes所說,您可以使用Composite WPF,但如果您使用Managed Extensibility Framework(MEF),還有另一個更簡單的選項可用。有關於如何完成你正在談論的使用MEF的內容的another question I asked。基本上,它使用MEF的可擴展性功能來擴展應用程序資源,然後您的模塊使用它們的DataTemplates(Views)「擴展」應用程序資源。然後,只需將您的ViewModel添加到GUI,WPF負責將View應用到它。我一直在建立這個模型的應用程序,它的工作非常好。

使用此方法的好處是,您的app.xaml文件不必「知道」所有的視圖模塊,並且您可以隨心所欲地切割和切割應用程序(我更喜歡按特徵分割,然後按層分割)。

+0

我不同意App.xaml「知道」Module的視圖......我們只允許模塊將自己的資源插入到App.xaml中。 MEF是否會以某種方式繞過這個限制(允許模塊/插件在不顯式引用視圖資源中的資源字典的情況下對其控件進行樣式設置)? – 2009-08-02 23:37:57