摘要:
作用同上节,这里是用修改注册的方式自定义View和ViewModel的关联。 protected override void ConfigureViewModelLocator() { base.ConfigureViewModelLocator(); // type / type //ViewMo 阅读全文
摘要:
上个例子跳过了ViewModelLocator,因是采用约定的方式最为方便。 如果有人要修改约定,自定义view和viewModel的默认自动定位方式,怎么办呢? 在app.xaml.cs重写以下方法: protected override void ConfigureViewModelLocato 阅读全文
摘要:
这一例只是说明ViewModelLocator的使用,没有难度,跳过。 阅读全文
摘要:
这一节使用xaml标记甚为不解。 本节注册module 的方式同directory一节很类似。在那一节中,用工厂方法创建一模块目录: protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModul 阅读全文
摘要:
这种模块是手动载入的,需要的时候手动加载。 在app.xaml.cs中注册为按需加载,代码 protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { var moduleAType = typeof( 阅读全文
摘要:
这种方式用扫描目录的方式来增加模块,具备最大的灵活性 仍然在App.xaml.cs中增加了以下代码 protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModuleCatalog() { Modu 阅读全文
摘要:
例7对注册Module使用了配置命令。 见app.xaml.cs: 1 using Modules.Views; 2 using Prism.Ioc; 3 using Prism.Modularity; 4 using Prism.Unity; 5 using System.Windows; 6 7 阅读全文
摘要:
在项目中添加模块化文件。模块文件怎样在主项目中注册。本例 说明方式一,使用了App.config文件。 其中: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="modules 阅读全文
摘要:
例5中刚说到视图精确控制,这次说明这样的灵活控制是怎样做的,显示或不显示,或切换视图。 主页上显示了主按钮和一个ContentControl <DockPanel LastChildFill="True"> <StackPanel> <Button Content="Activate ViewA" 阅读全文
摘要:
这里稍微复杂了点,定义视图A的过程是一样的: <UserControl x:Class="ViewInjection.Views.ViewA" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="htt 阅读全文
摘要:
前三节算是弄明白了Region是什么,但是定义了区域,怎样向区域中添加内容呢?内容是UserControl,即ViewA。 添加内容的方式有2种,一种叫View Discovery,一种叫View Injection。 第一种,先定义一个ViewA,内容很简单,只加一行字: <TextBlock T 阅读全文
摘要:
在例2中,我们使用了一个Region <ContentControl prism:RegionManager.RegionName="ContentRegion" /> 上面使用了ContentControl,但在prism中,不是每个控件都能定义为Region的。比如Stack Panel就不行, 阅读全文
摘要:
例2引入了Region的概念。 例1中我们提到bootstrapper与app.xaml.cs,现在是这样的: public partial class App : PrismApplication { protected override Window CreateShell() { return 阅读全文
摘要:
这个样例版本上已经过时了,但与8.1版本仍然兼容。 在本版本中,指定启动项: App.xaml.cs: protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var bootstrapper = new 阅读全文