摘要: 上个例子跳过了ViewModelLocator,因是采用约定的方式最为方便。 如果有人要修改约定,自定义view和viewModel的默认自动定位方式,怎么办呢? 在app.xaml.cs重写以下方法: protected override void ConfigureViewModelLocato 阅读全文
posted @ 2021-06-07 20:29 cbaa 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 这一例只是说明ViewModelLocator的使用,没有难度,跳过。 阅读全文
posted @ 2021-06-07 19:47 cbaa 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 这一节使用xaml标记甚为不解。 本节注册module 的方式同directory一节很类似。在那一节中,用工厂方法创建一模块目录: protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModul 阅读全文
posted @ 2021-06-07 19:44 cbaa 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 这种模块是手动载入的,需要的时候手动加载。 在app.xaml.cs中注册为按需加载,代码 protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { var moduleAType = typeof( 阅读全文
posted @ 2021-06-07 15:38 cbaa 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 这种方式用扫描目录的方式来增加模块,具备最大的灵活性 仍然在App.xaml.cs中增加了以下代码 protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModuleCatalog() { Modu 阅读全文
posted @ 2021-06-07 15:30 cbaa 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 例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 阅读全文
posted @ 2021-06-07 15:23 cbaa 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 在项目中添加模块化文件。模块文件怎样在主项目中注册。本例 说明方式一,使用了App.config文件。 其中: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="modules 阅读全文
posted @ 2021-06-07 15:19 cbaa 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 例5中刚说到视图精确控制,这次说明这样的灵活控制是怎样做的,显示或不显示,或切换视图。 主页上显示了主按钮和一个ContentControl <DockPanel LastChildFill="True"> <StackPanel> <Button Content="Activate ViewA" 阅读全文
posted @ 2021-06-07 13:48 cbaa 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 这里稍微复杂了点,定义视图A的过程是一样的: <UserControl x:Class="ViewInjection.Views.ViewA" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="htt 阅读全文
posted @ 2021-06-07 13:40 cbaa 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 前三节算是弄明白了Region是什么,但是定义了区域,怎样向区域中添加内容呢?内容是UserControl,即ViewA。 添加内容的方式有2种,一种叫View Discovery,一种叫View Injection。 第一种,先定义一个ViewA,内容很简单,只加一行字: <TextBlock T 阅读全文
posted @ 2021-06-07 13:16 cbaa 阅读(106) 评论(0) 推荐(0) 编辑