Prism V2之旅(3)

上篇介绍了Region的基本应用,这篇接上篇,继续介绍关于Region的相关应用—RegionAdapter

1.预先实现映射关系RegionAdapterMappings

RegionAdapterMappings对Control和RegionAdapter做了一个映射,这个映射是在Bootstrapper引导程序中完成的.

    protected virtual RegionAdapterMappings ConfigureRegionAdapterMappings()
    {
      RegionAdapterMappings regionAdapterMappings = Container.TryResolve<RegionAdapterMappings>();
      if (regionAdapterMappings != null)
      {
        regionAdapterMappings.RegisterMapping(typeof(Selector), this.Container.Resolve<SelectorRegionAdapter>());
        regionAdapterMappings.RegisterMapping(typeof(ItemsControl), this.Container.Resolve<ItemsControlRegionAdapter>());
        regionAdapterMappings.RegisterMapping(typeof(ContentControl), this.Container.Resolve<ContentControlRegionAdapter>());
      }
      return regionAdapterMappings;
    }

这里提供了三种控件支持,在上篇也有交代.RegionAdapter必须实现IRegionAdapter接口

2.在注册Region时寻找RegionAdapter

<StackPanel cal:RegionManager.RegionName="MainRegion"/>

以上的定义是错误的,因为在RegionAdapterMappings无法找到StackPanel和RegionAdapter的映射关系.以上附加属性的设置会尝试执行以下代码

protected virtual IRegion CreateRegion(DependencyObject targetElement, string regionName)
{
  // Build the region
  IRegionAdapter regionAdapter = this.regionAdapterMappings.GetMapping(targetElement.GetType());
  IRegion region = regionAdapter.Initialize(targetElement, regionName);
  return region;
}

为了支持StackPanel,我们可以尝试为StackPanel定义一个实现IRegionAdapter的区域适配器.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索container
, StackPanel
resolve
泰坦之旅汉化补丁v2.7、太空旅客v2、傲斗遮天v2.3天帝之名、傲斗凌天v2.3怖冰之末、沉沦之城v2.3.1攻略,以便于您获取更多的相关知识。

时间: 2024-08-03 19:45:11

Prism V2之旅(3)的相关文章

Prism V2之旅(1)

概述 如果你在开发wpf程序,应该听说过The Composite Application Guidance for WPF(以下简称prism) 总而言之,prism是帮助你开发复杂的wpf应用程序的.希望在看完此系列教程以后能对你有所帮助. 从去年正式版发布至今,将近快半年了.silverlight 2正版的推出.prism也开始支持silverlight,而且这次是同时支持wpf和silverlight.这样便统一了wpf和silverlight的编程,代码的移植也更加的方便.现在pris

Prism V2之旅(2)

在这里我们统一prism里面一些名字的称谓. 1.Shell 主程序容器 2.Region 内容区域 3.Module 模块 4.wpf 不是特殊情况,就是指wpf和silverlight 一.wpf的内容控件 继承自ContentControl控件的,我们称之为内容控件. <ContentControl Content=""></ContentControl> ContentControl控件定义了一个Content,在没有框架的情况下,也可以将其作为一个内容

prism v2之旅(7)

这篇继续介绍Module的功能. 第5篇已经介绍过模块的一些基本功能了,这篇介绍模块在silverlight的特殊应用. silverlight的项目生成文件是xap文件,其提供了一个非常方便的功能,即相互的xap文件可以相互加载,就如flash的swf文件一样可以动态加载.建议你在看下去之前先看一下TerryLee写的这两篇文章 这里我简单的总结一下silverlight程序初始化的步骤.总目标是要拿到xap里面的UserControl 1.先加载xap文件,xap文件包括一个xaml文件和一

Prism V2之旅(4)

这篇向大家介绍一个在wpf中非常实用的功能Attach Behavior.我们称之为附加行为. 附加行为在Web领域的流行 如果你知道asp.net ajax框架就一定会知道AJAX Control Toolkit.虽然里面的很多功能华而不实,但这种实现方式确实非常值得学习.你可以再次打开其展示的网站回顾一下其用法,如下面代码的方式 <asp:TextBox ID="TextBox1" runat="server" /> <sample:Focus

Prism V2之旅(6)

这篇来讲事件.事件主要用来交互. 监听事件 我订阅了一些blog的rss,如果我订阅的blog发布了新的文章的话,系统(就是抓虾)就会帮我抓取新的rss信息 很好理解,一方订阅(Subscribe),一方发布(Publish). prism的事件 prism的抽象类EventBase实现了事件的订阅和发布的操作.CompositePresentationEvent类继承自EventBase做了进一步封装,其是一个泛型类,我们可以通过CompositePresentationEvent来传递一个参

Prism V2之旅(5)

这篇来介绍Prism中的很重要的一个功能模块化. 基本概念 模块化的概念类似于现在网上比较流行的Widget,如下例子 google的个性化页面 vista的sidebar 他们都有如下特性: 1.模块之间没有关联,模块之间不会相互引用 2.可插拔(可随意增删改模块)

基于wpf的相关设计问题-ViewModel

prism v2正式版本已经发布,有兴趣的可以去研究一下.框架给了我们一些实用的功能参考,并不代表实 际开发就不会遇到问题.有些人以为只要套用了框架,开发效率就会提升很好,就好比有人以为只要我掌 握了设计模式,开发效率会提升一样.框架只是为我们解决一部分常用的问题.但对于不同系统的设计总 有些不同.本篇将讨论在wpf中主要使用了一些设计方法. 一.Model-View-Presenter MVP模式现已经非常常用,如果你不熟悉请参考此文MVP 模式实例解析,我把我自己理解的相关类列出来 . 我来

我的WCF之旅(7)

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合 - Part II 4.Host Service:http://localhost/Artech.InheritanceHierarchy 现在我们完成了Service的定义,现在我们来Host我们定义的Service,这次我们通过IIS的方式来host service.我们首先在该Website中引用Artech.InheritanceHierarchy.Service Project.然后为FullWhetherFo

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承

当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替.在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 . OO和SO之间具有共同的部分,在运用的领域上存在交集,只有在基于他们交集层面上谈论谁是谁非才有意义,下面是我对SO和