有幾天沒有寫博客了. 清明節(jié)??! 在上一章的例程中通過Prism實(shí)現(xiàn)了Silverlight控件的簡單加載。今天繼續(xù)來個(gè)更復(fù)雜一點(diǎn)的,。
在Prism中有四個(gè)非常重要的對象: bootstrapper, shell. region, view,。 bootstrapper在之前的章節(jié)中經(jīng)常有用到,它作為一個(gè)啟動(dòng)器,,用于系統(tǒng)的初始化工作,。對于shell,個(gè)人理解,,Shell就是系統(tǒng)的主界面,,或者說,他是所有UI的容器,。 Shell 里面一般都會(huì)有一個(gè)或多個(gè)Region,。 Shell與Region的組合,在網(wǎng)上有人將它們與asp.net中的母板頁做類比,。這樣類比很好,,也確實(shí)差不多,Region的作用,,跟網(wǎng)頁中的 iframe差不多,。只是Region中加載的是View,View就是一個(gè)用戶控件,。我將在下面的例程中一一講述,。
還是在上一章的例程中進(jìn)行修改: 1. 刪除解決方案中所有跟UIService相關(guān)的東東, 然后,在ModuleB項(xiàng)目中添加兩個(gè)用戶控件.在ModuleA項(xiàng)目添加一個(gè)用戶控件,。 2, 在SLDemoApplication項(xiàng)目中添加一個(gè)用戶控件,,取名為Shell.xaml。這個(gè)用戶控件將作為主窗體,,在這里,,我們稱之為 Shell(上面講到的,所有控件的容器,。) 3, 在Shell 中添加兩個(gè)容器,,代碼如下: 1 <Grid x:Name="LayoutRoot" Background="White"> 2 3 <Grid.ColumnDefinitions> 4 <ColumnDefinition/> 5 <ColumnDefinition/> 6 </Grid.ColumnDefinitions> 7 8 <ItemsControl 9 regions:RegionManager.RegionName="ListRegion"/> 10 11 <ContentControl Grid.Column="1" 12 regions:RegionManager.RegionName="MainRegion"/> 13 </Grid> 4. 分別在這兩個(gè)項(xiàng)目中的Module類,使用RegionManager 將用戶控件關(guān)聯(lián)到Region上,。方法見如下的代碼: 1 public class TextServiceModule: IModule 2 { 通過以上簡單的幾步,, 就完成了用戶控件的自動(dòng)加載,并且是可插拔的加載!現(xiàn)在太晚了,,關(guān)于在View中應(yīng)用MVVM的部分就不說了,,代碼里面有。
|
|