程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Prism V2之旅(3)

Prism V2之旅(3)

編輯:關於ASP.NET

上篇介紹了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的區域適配器.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved