引言
UIComposition原版Demo在PrismV5的解压包里面.原Demo用了.net4.5版本的DLL,我改成.net4.0的.
RegionContext
这个Demo比之前那几个示例大概也只是多了一个新概念,那就是RegionContext.
众所周知,View的DataContext一般都是对应ViewModel,而Region很多时候也可以看成是一个View,所以Prism给了它一个RegionContext作为Region中多个子View的共享数据上下文.
一般用于Region是TabControl和ItemsControl控件.用法也比较简单,如下,先在Region中绑定数据源
<TabControl Grid.Row="1" AutomationProperties.AutomationId="EmployeeSummaryTabControl" Margin="8" regions:RegionManager.RegionName="TabRegion" regions:RegionManager.RegionContext="{Binding CurrentEmployee}" Width="Auto" Height="Auto" HorizontalAlignment="Stretch" ItemContainerStyle="{StaticResource HeaderStyle}"> </TabControl>
然后在子View的构造函数中获取RegionContext的值
employeeProjectsViewModel.CurrentEmployee =RegionContext.GetObservableContext(this).Value as Employee
示例源码
http://pan.baidu.com/s/1jGAd6dS
小结
在官方文档Prism 4.0有更详细的说明,有兴趣可以去瞧瞧..