当前位置: 首页 > news >正文

prism框架

1.prism 框架在VS中可以安装模板,这样使用起来方便

image

 2.DI(依赖注入)

以下是框架内自动注入的,也就是说在ViewModel中的构造函数可以直接使用,不需要再APP.CS中注册

比如像这个样,构造函数可以随便使用

 public MainWindowViewModel(IRegionManager regionManager, IModuleManager moduleManager, IEventAggregator eventAggregator, IDialogService aaa)

 

类别具体内容(按平台)生命周期核心用途
核心内置服务(全平台) IEventAggregator(事件聚合器) 单例 跨组件通信
  INavigationService(导航服务) 瞬时 页面 / View 导航
  IDialogService(弹窗服务) 单例 标准化弹窗管理
  IContainerRegistry/IContainerProvider(DI 容器接口) 单例 注册 / 解析服务
WPF 专属内置服务 IRegionManager(区域管理器) 单例 管理 WPF 的 Region 容器
  IModuleManager/IModuleCatalog(模块管理) 单例 模块化加载 / 管理
框架内部基础设施 ViewModelLocator、导航管道、容器内部组件 内部管理 框架底层运行(无需关注)

 

还有一种自定义的方式需要手动注册,再App.cs中

containerRegistry.Register<IUserService, UserService>(); // 瞬时(默认)
containerRegistry.RegisterSingleton<ISettingsService, SettingsService>(); // 单例
containerRegistry.Register<LocalDataCache>(); // 无接口的具体类型

3. View 与 ViewModel 的自动关联注册

如果 View(OrderView)和 ViewModel(OrderViewModel)满足「同命名空间 + View 后缀 / ViewModel 后缀」,Prism 的ViewModelLocator可自动关联,无需手动注册;

但是prism项目模板是不在同一个命名空间内,二十遵循了精准利用了 Prism 的扩展约定。

prism:ViewModelLocator.AutoWireViewModel="True"    这个二是自动关联开关;绑定上下文

小技巧添加以下代码,可再Xaml界面中使用转到定义功能

<!-- 1. 引入设计时命名空间(固定) -->xmlns:d="http://schemas.microsoft.com/expression/blend/2008"<!-- 2. 引入ViewModel命名空间(替换为你的实际命名空间) -->xmlns:vm="clr-namespace:YourApp.ViewModels"<!-- Prism自动装配(运行时生效) -->prism:ViewModelLocator.AutoWireViewModel="True"<!-- 3. 设计时DataContext(仅给VS看,不影响运行) -->d:DataContext="{d:DesignInstance Type=vm:OrderViewModel, IsDesignTimeCreatable=False}"

4.

4. 对话框(Dialog)注册

使用IDialogService的弹窗,必须手动注册:
// 注册对话框View+ViewModel
containerRegistry.RegisterDialog<ConfirmDialogView, ConfirmDialogViewModel>();// 注册带自定义弹窗样式的对话框(WPF)
containerRegistry.RegisterDialog<EditDialogView, EditDialogViewModel>("EditDialog");

 

5. 模块化注册

自定义模块(IModule实现类)需要手动注册,才能被框架加载:
// WPF:App.xaml.cs
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{// 注册启动时加载的模块moduleCatalog.AddModule<UserModule>();// 注册按需加载的模块moduleCatalog.AddModule<OrderModule>(initializationMode: InitializationMode.OnDemand);
}

6. 第三方组件 / 服务

// 注册HttpClient(单例)

containerRegistry.RegisterSingleton(() => new HttpClient { BaseAddress = new Uri("https://api.example.com") });

// 注册数据库上下文

(DbContext) containerRegistry.Register<AppDbContext>();

http://www.jsqmd.com/news/123323/

相关文章:

  • 如何压缩减小JPG文件体积?JPG压缩指南
  • Open-AutoGLM会话泄漏终极解决方案:从原理到实践一步到位
  • 移动活动板房哪家靠谱?年度权威TOP5榜单发布诚栋营地领跑行业 - 资讯焦点
  • IT转行首选网络安全?究竟是怎么回事?
  • 完整教程:Markdown文件导入Milvus向量数据库完整指南
  • 基于SpringBoot+Vue的+线上教育培训办公系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 2025文山交通事故律师推荐指南哪家靠谱律师团队值得关注 - 资讯焦点
  • 【大厂级故障复盘】:Open-AutoGLM流程颠倒的5个致命诱因及修复路径
  • 一口气讲明白网安工程师,一文带你从零基础入门到精通!
  • MacOS环境下Tomcat安装部署
  • Shell流程结构
  • Java Web +疫情物资捐赠和分配系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 【2025最新】基于SpringBoot+Vue的宠物爱心组织管理系统管理系统源码+MyBatis+MySQL
  • 城市大脑的“预见之眼”:高精度AI气象如何提前3小时预判城市内涝积水点,指挥救援力量精准前置?
  • 2025年浙江口碑好的特氟龙生产厂家排名:特氟龙加工厂推荐有哪些? - mypinpai
  • Open-AutoGLM请假流程实战指南(从零到上线全流程拆解)
  • rohs测试仪靠谱厂家,哪家品牌好? - 品牌推荐大师
  • (Open-AutoGLM认证失败应急方案)生产环境必备的4个容错技巧
  • 【光伏风电功率预测】调度员最需要什么样的 AI 预测?从一条曲线到“可执行方案”
  • 2026消防应急展|国际消防安全展|2026北京消防展览会
  • 提前实测AT4V H00电流传感器,抗谐波干扰性能比同类型产品提升30%!
  • 【企业级报销系统深度解读】:Open-AutoGLM单据提交的7个核心要点
  • 投保流程卡顿频发?Open-AutoGLM智能诊断系统来了,立即解决!
  • Open-AutoGLM中断恢复为何如此高效?解析背后不为人知的3层状态快照架构
  • 【独家深度解读】:Open-AutoGLM大模型轻量化协同的7个核心模块剖析
  • 2025年深圳大牌小样加盟市场分析与品牌推荐,大牌小样加盟公司推荐悦容庄国际专注产品质量 - 品牌推荐师
  • 智和信通监控运维方案赋能某地铁路局运维提效
  • Open-AutoGLM流程跳过实战技巧(90%工程师忽略的关键路径)
  • 2025浙江靠谱特氟龙加工工厂TOP5推荐:看哪家售后好? - myqiye
  • 2025年度扫地机生产厂TOP5权威推荐:清扫设备选型指南 - myqiye