Region 区域
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"/>