Region 的作用:在指定区域展示用户控件,是模块化的核心功能,其主要目的是弱化模块与模块之间的耦合关系。
一、定义XML区域:
1.1 使用XML设置区域名称
<ContentControl prism:RegionManager.RegionName="ContentRegion" />
1.2 使用代码设置区域名称
<ContentControl x:Name="cct" />
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
RegionManager.SetRegionName(cct, "ContentRegion");
}
}
二、 在 ViewModel 中将用户控件 ViewA 注册到 ContentRegion 内容区域中并显示
public class MainWindowViewModel : BindableBase
{
private readonly IRegionManager m_RegionManager;
private string _title = "Prism Application";
public string Title
{
get { return _title; }
set { SetProperty(ref _title, value); }
}
public MainWindowViewModel(IRegionManager regionManager)
{//将用户控件 ViewA 注册到 ContentRegion 内容区域中显示
m_RegionManager = regionManager;
m_RegionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA));
}
}
三、 RegionManager 的功能
- 定义区域
- 维护区域集合
- 提供对区域的访问
- 合成视图
四、Prism 内置的区域控件适配器
<ContentControl prism:RegionManager.RegionName="ContentRegion"/>
<ItemsControl prism:RegionManager.RegionName="ContentRegion"/>
<SelectorRegion prism:RegionManager.RegionName="ContentRegion"/>
<ComboBox prism:RegionManager.RegionName="ContentRegion"/>
<ListBox prism:RegionManager.RegionName="ContentRegion"/>
<Ribbon prism:RegionManager.RegionName="ContentRegion"/>
<TabControl prism:RegionManager.RegionName="ContentRegion"/>