前三节算是弄明白了Region是什么,但是定义了区域,怎样向区域中添加内容呢?内容是UserControl,即ViewA。
添加内容的方式有2种,一种叫View Discovery,一种叫View Injection。
第一种,先定义一个ViewA,内容很简单,只加一行字:
<TextBlock Text="View A" FontSize="38" />
然后我们在主页面上添加一个Region,如同前面反复看到好几次的:
<ContentControl prism:RegionManager.RegionName="ContentRegion" />
现在的问题就是,怎样把ViewA的内容显示在ContentRegion中呢? 这里用的是发现:
public partial class MainWindow : Window { public MainWindow(IRegionManager regionManager) { InitializeComponent(); //view discovery regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA)); } }
这里是在RegionManager 中进行注册,注册的内容是区域和视图的关联关系。一个区域可以注册多个视图,但是显示哪个,就由后面的激活决定。后面的样例应该是有的。