【Prism】MEF版UIComposition

引言

    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有更详细的说明,有兴趣可以去瞧瞧..

原文地址:https://www.cnblogs.com/caizl/p/4678577.html