WPF Prism框架合集(2.创建Prism应用程序)

proginn468312

共 2481字,需浏览 5分钟

 ·

2021-01-06 14:32

  • 视频教程地址

https://www.bilibili.com/video/BV1Ei4y1F7du


  • 创建Prism应用程序

1.第一步

首先, 创建一个基于.NetFramework 或.NetCore的WPF应用程序。如下所示:


2.第二步

为当前应用程序添加NuGet源, 打开NuGet管理器,安装**Prism.DryIoc**, 如下所示:


说明: 本文将以DryIoc容器为主讲解本系列的所有内容。实际上, 在Prism7.2版本中, 已经引入了一些围绕IOC抽象的API更改。这最终将使得在选择容器之间切换更加容易,因为 API 在如何注册服务和视图方面完全相同。

您仍然可以访问容器,在 Autofac 容器构建器的情况下,通过扩展方法,以便您可以完成更复杂的注册。

// Prism 6.X way of Registering Servicesprotected override void RegisterTypes(){    // Container Specific Registrations

// Autofac Builder.RegisterType().As().SingleInstance();

// DryIoc Container.Register(reuse: Reuse.Singleton, ifAlreadyRegistered: IfAlreadyRegistered.Replace);

// Ninject Container.Bind().To().InSingletonScope();

// Unity Container.RegisterType(new ContainerControlledLifetimeManager());}

// Unified API in Prism 7protected override void RegisterTypes(IContainerRegistry containerRegistry){ containerRegistry.RegisterSingleton();}

在Prism提供的VusualStudio Template Pack当中, 默认支持选择两种类型的容器项目:

1.DryIoc: https://github.com/dadhi/DryIoc

2.Unity:  https://github.com/unitycontainer/unity


3.第三步

修改App.xaml文件,添加prism命名空间, 继承由Application->PrismApplication, 如下所示:


打开App.xaml.cs文件, 继承由Application->PrismApplication, 如下所示:

注: 此时,继承于PrismApplication类, 需要实现其中的两个抽象方法。CreateShell 与 RegisterTypes


  • Prism的初始化过程

在上面过程中, 我们已经将普通的WPF应用程序修改为PrismApplication, 此时, 再来了解一下Prism的整个框架的初始化过程, 如下所示:


到目前为止, 我们并不关心内部的运行逻辑及初始化过程, 从上面的图中, 可以大致了解, Prism在初始化过程中, 

除了构建自身的容器、服务、适配器及一些区域行为后, 便开始创建应用程序的首页(Shell)以及加载模块, 最终呈现。


: 关于涉及到的服务、注册类型、适配器、区域等概念, 再后面会陆续讲解。


了解了上面的初始化流程之后, 我们有了初步的概念, 再次回到第三步当中,App.xaml.cs文件。


在这里, 我们实现了其中的两个抽象方法:

1.CreateShell

该方法返回了一个Window类型的窗口, 其实就是返回应用程序的主窗口。


2.RegisterTypes

该方法用于在Prism初始化过程中, 我们定义自身需要的一些注册类型, 以便于在Prism中可以使用。


  • 创建Shell示例

现在, 创建一个ShellWindow, 并且实现CreateShell将SheloWindow实例返回, 如下所示:

注:Container 是基类当中的一个容器属性,可用于解析对象的依赖项注入容器


启动之后, 我们可以ShellWindow创建定义的内容,并且呈现。


创建Prism的快速方法

  • 打开VisualStudio的扩展, 安装Prism Template Pack包。

- Prism Template Pack提供了什么?

  • 1.Blank Project (空白示例项目)

  • 2.Module Project (模块示例项目)

  • 3.代码片段(用户快速创建属性,命令)

 3.1.propp – property (depends on BindableBase)

 3.2.cmd - DelegateCommand

 3.3.cmdg – DelegateCommand


  • 安装完成之后, 再次打开VisualStudio, 将会发生,Prism Template Pack提供了多种项目模板, 用于快速构建基于Prism的应用程序, 如下所示:


注:同时,Prism提供了基于Xamarin的项目模板, 因为Prism是一个基于多个平台的框架。


结语

本章节, 主要介绍了如何创建一个基于Prism的WPF项目, 以及其它方式快速创建基于Prism的项目模板。


预告

下一章将主要介绍在Prism当中, 如何为一个Shell, 定义其显示区域(Region)。

浏览 91
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报