甄文超

TNT 数字生活

.NET


WPF Prism(六)Dialog

一、什么是Dialog 对话框实际上是我们应用程序经常用到得一个功能,类如:Show、Show Dialog。可以弹出一个我们指定得窗口,仅此而已那么在Prism当中,Dialog指的什么? Prism提供了一组对话服务,封装了常用的对话框组件的功能,例如: RegisterDialog/IDialogService (注册对话及使用对话) 打开对话框传递参数/关闭对话框返回参数 回调通知对话结果 二、创建Dialog Dialog其实也是一组用户控件,我们可以创建一个子模块,然后不需要继承IModule,继承了也没有关系,只要不加载该子模块就行,这样我们可以把他当作对话框或者子模块使用,而不需要改动太多代码。值得一提的是,默认情况下这个控件会嵌入到窗体中弹出,所以我们可以定义弹出窗体的一些属性: <prism:Dialog.WindowStyle> …

.NET wpf

WPF Prism(五)Navigation

一、使用场景 在普遍的业务场景当中,必不可少的是页面切换,而Prism就可以使用Navigation功能来进行页面导航,在不同的场景当中会有各种用法,例如在切换页面验证、传递参数、返回上一页、返回下一页等功能。 二、导航的使用 2.1 注册显示区域(region)这个在前面章节已做详细介绍不再赘述。 2.2 注册导航页面(View)之前的介绍中我们一般是将一个View指定到一个region中。而现在我们需要将多个View注册到导航中。例如我们现在有两个子模块(ViewAModule和ViewBModule),我们分别注册导航界面: public class ViewAModule : IModule { public void OnInitialized(IContainerProvider containerProvider) { …

.NET wpf

WPF Prism(四)MVVM

一、前言 在阅读本篇文章之前,最好有ICommand和INotifyPropertyChanged等基础知识。 二、BindableBase BindableBase抽象类实现了INotifyPropertyChanged接口,主要作用当绑定到界面的数据发生改变的时候可以通知界面进行更新。 public class ContentViewModel : BindableBase { private string _message; public string Message { get { return _message; } set { SetProperty(ref _message, value); } } } 三、Command 用于事件 …

.NET wpf

WPF Prism(三)ViewModelLocator

一、命名约定 在Prism当中,你可以基于命名约定,便能够轻松的将View和ViewMode建立关联。前提是你已经为项目创建了Views和ViewModels文件夹(这里就突出了使用模板创建的好处了)。 例如:你的页面为ViewA,那么对应的ViewModel名称为ViewAViewModel。 ​ 你的页面为HeaderView,那么对应的ViewModel名称为HeaderViewModel。 二、允许View自动装配ViewModel <UserControl x:Class="Menu.Views.MenuView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/ …

.NET wpf

WPF Prism(二)Module

一、什么是模块(Module) 本质上来说,对于一个应用程序而言,特定功能的所有View、Logic、Service等都可以独立存在。那么我们称每一个独立的功能我们都可以称之为模块。 通常情况下,我们在一个项目当中的结构是这样的: 所有的模块都在一个项目中,这使得应用程序当中,我们难以区分单独的模块,它们似乎变成了一个整体。所以,当我们开始考虑划分模块之间的关系的时候,并且采用新的模块化解决方案,它的结构将变成如下: 该项目包含了一个启动页,并且在启动页当中,我们划分好了对应的区域。这个时候,我们便可以灵活的配置我们的应用程序功能。使用Prism提供的强大功能,我们可以动态的加载应用程序模块,为指定的Region动态分配内容。 二、创建模块 2.1如果安装了VS插件,则可以直接在Module,它是一个类库。创建好之后是这样的: 2.2查看HeaderModule文件 …

.NET wpf

WPF Prism(一)Region

一、什么是Region 在Prism当中,一个页面我们可以不再为其固定显示的内容,而这种概念变成了区域(Region)划分的概念。将页面显示的区域划分成N个Region,每一个Region将动态分配区域。它将负责承担我们的UI组件或者控件。 二、RegionManager类 RegionManager功能 维护区域集合提供对区域的访问合成视图区域导航定义区域 三、使用RegionManager 首先,我们需要将MainWindow的构造函数传入IRegionManager参数: public partial class MainWindow : Window { public MainWindow(IRegionManager regionManager) { InitializeComponent(); …

.NET wpf

WPF Prism框架介绍

WPF Prism框架介绍 一、什么是PrismPrism是一个用于在 WPF、Xamarin Form、Uno 平台和 WinUI 中构建松散耦合、可维护和可测试的 XAML 应用程序框架。 二、官方地址 https://github.com/PrismLibrary/Prism 基于Prism的VisualStudio扩展包模板: Prism Template Pack,下载它后可以快速创建基于Prism的项目。 三、Prism框架内容 框架中包括 MVVM、依赖注入、Command、Message Event、导航、弹窗等功能。 四、Prism知识章节 Region(区域管理) Module(模块) View Injection(视图注入) ViewModelLocationProvider(视图模型定位) Command(绑定相关) Eevent Aggregator (事件 …

.NET wpf