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

将普通Wpf项目改成Prism项目

  1. 下载Nuet包
a.通过NuGet安装程序包:Prism.DryIoc, 其中Prism有两种Ioc容器,DryIoc和Unity,推荐使用DryIoc
安装提醒:C# Prism框架库 9.0.106版本中,出现“Prism.Container.Abstractions”库,强名称验证失败问题,最新版本9.0.537已解决此问题。
https://blog.csdn.net/JueHenDaDa/article/details/142712998

在这里插入图片描述
2. 修改App.xaml文件

<Appliction>换成<prism:PrismApplication>。
且引入prism命名空间:xmlns:prism="http://prismlibrary.com/"。
且去掉StartupUri="MainWindow.xaml"

在这里插入图片描述
3. 修改App.xaml.cs文件

App原来继承Application,换成继承PrismApplication。
并且重写两个方法CreateShell()RegisterTypes()

在这里插入图片描述
解决报错
在这里插入图片描述
在这里插入图片描述

using Prism.DryIoc;
using Prism.Ioc;
using System.Windows;namespace Prism
{/// <summary>/// App.xaml 的交互逻辑/// </summary>//2.把App文件中的Application改为PrismApplicationpublic partial class App : PrismApplication{// Shell外壳,创建一个外壳,意思:创建一个启动窗体,控制应用程序启时,启动的第一个窗体。// CreateShell()===>StartupUri二选一protected override Window CreateShell(){// 这里需要返回你的主窗口实例,例如:// return new MainWindow();// 如何拿第一个窗体?Ioc容器。//Container.Resolve<MainWindow>();//Container.Resolve(typeof(MainWindow));return null;}protected override void RegisterTypes(IContainerRegistry containerRegistry){// 在这里注册你的依赖项}}
}
  // StartUri和CreateShell()谁先执行呢?CreateShell()后执行。protected override Window CreateShell(){Console.WriteLine("3。cccccc");// Container.Resolve<Window1>()只是从Ioc中拿到Window1窗体,并启动。//return Container.Resolve<MainWindow>();return null;}protected override void Initialize(){Console.WriteLine("2。bbbbbb");base.Initialize();//Login login = new Login();  // 实例化的,将来可以从IOC中拿到。/*var login = Container.Resolve<Login>();if (login.ShowDialog() != true){Application.Current.Shutdown();}*/}private void PrismApplication_Startup(object sender, StartupEventArgs e){Console.WriteLine("1。aaaaaa");}// 注册类型   向IOC中注册各种对象protected override void RegisterTypes(IContainerRegistry containerRegistry){// 把窗体对象注册到IOC容器containerRegistry.RegisterSingleton<Login>();containerRegistry.RegisterForNavigation<Window2, Window2ViewModel>();}

文章转载自:

http://rtArBmsj.yxLpj.cn
http://fXE6clbv.yxLpj.cn
http://bwJvVUli.yxLpj.cn
http://4OSOiRoF.yxLpj.cn
http://F5Z5mw5L.yxLpj.cn
http://hf4Z1GdK.yxLpj.cn
http://klaUH82I.yxLpj.cn
http://ttCF9hF8.yxLpj.cn
http://h8VbeKkj.yxLpj.cn
http://AFXJA3CD.yxLpj.cn
http://ytfSXl1j.yxLpj.cn
http://VYiObJto.yxLpj.cn
http://7m644kBZ.yxLpj.cn
http://H2gvvjCo.yxLpj.cn
http://EJPyZaGv.yxLpj.cn
http://pu4YMnhY.yxLpj.cn
http://fldRiyvr.yxLpj.cn
http://oPb543Na.yxLpj.cn
http://alIhs5i0.yxLpj.cn
http://vFY8dxdl.yxLpj.cn
http://N4M7Q8Fs.yxLpj.cn
http://CDVapj8m.yxLpj.cn
http://B5NUs14x.yxLpj.cn
http://08ogSuCo.yxLpj.cn
http://TkqUi08K.yxLpj.cn
http://LizRMuDQ.yxLpj.cn
http://MajQEADA.yxLpj.cn
http://zbhQjLnj.yxLpj.cn
http://k0x2feSL.yxLpj.cn
http://OiTlnrBA.yxLpj.cn
http://www.dtcms.com/a/386171.html

相关文章:

  • 微硕WINSOK高性能N沟道场效应管WSD3040DN56,助力汽车中控散热风扇静音长寿命
  • nextjs+shadcn+tailwindcss实现博客中的overview
  • cursor-关于自定义指令的问题处理
  • Vision Transformer (ViT) :Transformer在computer vision领域的应用(四)
  • 【开题答辩全过程】以 “今天吃什么”微信小程序为例,包含答辩的问题和答案
  • iOS App 内存泄漏与性能调优实战 如何排查内存问题、优化CPU与GPU性能、降低耗电并提升流畅度(uni-app iOS开发优化指南)
  • 从 Token 拦截器到 Web 配置
  • Next.js 的原理和它的使用场景
  • SPAR模型优化思路
  • pycharm+miniconda cursor+miniconda配置
  • windows在pycharm中为项目添加已有的conda环境
  • 微信小程序实现-单选-以及全选功能。
  • 知识点19:生产环境的安全与治理
  • 软件开源协议(Open Source License)介绍
  • SAP HANA Scale-out 04:缓存
  • ios制作storyboard全屏启动图
  • 2025高教杯数学建模大赛全流程,从数据处理、建模到模型评价
  • 点拨任务应用于哪些业务场景
  • 墨色规则与血色节点:C++红黑树设计与实现探秘
  • C#语言入门详解(19)委托详解
  • 【数字展厅】企业展厅设计怎样平衡科技与人文呈现?
  • Day25_【深度学习(3)—PyTorch使用(6)—张量拼接操作】
  • WSL2(ubuntu20.04)+vscode联合开发(附迁移方法)
  • 无线数传模块优化汽车装配立库物料运送设备间低延迟通信方案
  • Parasoft助力「东软睿驰」打造高质量汽车软件
  • 设计多租户 SaaS 系统,如何做到数据隔离 资源配额?
  • 基于错误xsleak 悬空标记 使用css利用帧计数 -- Pure leak ASIS CTF 2025
  • 【Day 57】Redis的部署
  • 在 Zellij 中用 Neovim 优雅地解决剪贴板同步问题
  • 云手机的技术架构可分为哪些