WPF+MVVM外掛化架構-殼
阿新 • • 發佈:2019-01-28
殼,即應用程式的載體,為了更好的降低耦合度,我們不會過多的給予殼附加過多的功能。這裡我們只需要在殼中載入兩個功能,一個是應用程式的標題,一個是應用程式的活動主題。
1、應用程式標題
應用程式的標題是必須的,也是一個應用程式所不可少的,然而我們不能把應用程式的標題寫死到程式中,因為我們的架構是需要支援可配置的,我們可以更新功能需要將所需功能的外掛組裝到一起,構成不同的系統,所以我們將從配置中獲取應用程式的標題。
下面我們將在殼的Main窗體中引用DataModel名稱空間
xmlns:MApp="clr-namespace:YeaJurSoft.App.DataModel;assembly=YeaJurSoft.App.DataModel"
然後再將應用程式標題進行繫結,如下
Title="{BindingPath=SystemTitle,Source={x:Static MApp:MApp.Instance}}"
2.應用程式活動主體
應用程式主體,即應用程式功能實現部分。這個部分也是一個應用程式的核心部分,我們將應用程式的各個功能都徹底的分離並外掛化,在需要的時候又將他們組合載入到一個活動主體中,並將這個活動主題載入到殼中的活動主體。
在殼的Main窗體中繫結活動主體,如下
<Border>
<UserControlContent="{Binding Path=MainWindow,Source={x:StaticMApp:MApp.Instance}}" />
</Border>
到這裡,我們的殼就算是搭建完畢了,功能簡潔而明確。