首页 > 其他分享 >Prism项目初始化与项目结构

Prism项目初始化与项目结构

时间:2023-09-03 11:46:28浏览次数:27  
标签:初始化 DelegateCommand 项目 Prism fieldName WPF 模板 ExecuteCommandName

Prism简介

Prism 框架适用于 WPF 和 Xamarin Forms 中构建松散耦合、可维护和可测试的应用程序。Prism 提供了一组设计模式的实现,这些设计模式有助于 编写结构良好且可维护的 xaml 应用程序,功能包括:

视图模型定位器(View Model Location)

MVVM(通知)

命令(Commands)

事件聚合器(EventAggregator)

模块化(Module)

依赖注入(Dependency Injection)

导航功能(Navigation)

对话服务(DialogService)

项目搭建

第一步 打开NuGet包管理器,添加Prism依赖包

第二步 搜索“Prism”

第三步 安装现“Prism.Core”和“Prism.Wpf”,IOC可选择“Prism.Unity”或“Prism.DryIoc”

第四步 改造WPF应用程序

生产力工具

官方文档:https://prismlibrary.com/docs/getting-started/productivity-tools.html
Prism 现在与 Visual Studio 和 Visual Studio for Mac 集成,为使用 Xamarin.Forms 创建 WPF、UWP 以及本机 iOS 和 Android 应用程序提供了高效的开发人员工作流。使用适用于所选 IDE 的代码段、项模板和项目模板快速启动 Prism 应用。
可用工具共有 3 种,分别是
Prism Template Pack
Prism Template Studio
Prism Extensibility Pack
Prism Template Pack
Prism Template Pack 包含用于生成 WPF 和使用棱镜的 Xamarin.Forms 应用程序的代码段、项模板和项目模板的集合。

Prism语法糖

propp - 属性,带有支持字段,依赖于 BindableBase

private string _fieldName;
public string PropertyName
{
get { return _fieldName; }
set { SetProperty(ref _fieldName, value); }
}

cmd - 使用 Execute 方法创建 DelegateCommand 属性

private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName));
void ExecuteCommandName()
{
}

cmdfull - 使用 Execute 和 CanExecute 方法创建 DelegateCommand 属性

private DelegateCommand _fieldName;
public DelegateCommand CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName()
{
}
bool CanExecuteCommandName()
{
return true;
}

cmdg - 创建泛型委托命令属性

private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}

cmdgfull - 使用 Execute 和 CanExecute 方法创建泛型 DelegateCommand 属性

private DelegateCommand<string> _fieldName;
public DelegateCommand<string> CommandName =>
_fieldName ?? (_fieldName = new DelegateCommand<string>(ExecuteCommandName, CanExecuteCommandName));
void ExecuteCommandName(string parameter)
{
}
bool CanExecuteCommandName(string parameter)
{
return true;
}

Prism提供的WPF模板

**Prism Blank App :**这是一个项目模板,实质上是创建新的 WPF 外壳应用程序。它将有一个基本的引导程序,负责初始化应用程序并显示shell。它将有一个 MainWindow 和一个 MainWindowViewModel,分别位于 Views 和 ViewModels 文件夹中。
**Prism Module :**此项目模板将向解决方案中添加一个新项目,该项目将充当 Prism Module 。它将定义一个类,该类实现 IModule,其中包含两个用于视图和视图模型的空文件夹。

Cross Platform 

Prism ViewModel :从 BindableBase 派生并具有默认构造函数的视图模型。

WPF 

Prism UserControl :使用视图模型的用户控制
Prism Window :带视图的窗口模型

外部下载地址

https://marketplace.visualstudio.com/items?itemName=BrianLagunas.PrismTemplatePack 

在 Visual Studio 上的安装步骤

官方文档:https://www.prismsupport.com/documentation/Content/Topics-DocForm/Project_Wizard.htm

进入创建内,可以选择 Dryloc 和 Unity 两种模板,在这里选用 Dryloc 模板。

运行结果如下: 

标签:初始化,DelegateCommand,项目,Prism,fieldName,WPF,模板,ExecuteCommandName
From: https://www.cnblogs.com/ZHIZRL/p/17674803.html

相关文章

  • Prism视图模型定位器(ViewModelLocator)
    视图模型定位器(ViewModelLocator)依照“标准命名约定”将视图(View)中的数据上下文链接到视图模型(ViewModel)的实例。自动绑定视图模型Prism视图模型定位器(ViewModelLocator)有一个AutoWireViewModel属性:当设置为true时,AutoWireViewModelChanged事件调用类中的ViewMod......
  • 基于springboot科研项目验收管理系统
    使用旧方法对科研项目信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在科研项目信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的科研项目验收管理系统对景点城市信息,科研项目信息,评论信息,自助资讯......
  • SpringBoot启动启动项目出现o.s.b.d.LoggingFailureAnalysisReporter 错误解决方法
    把@SpringBootApplication改成@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})代码如下:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})publiccl......
  • 普通Java项目使用lombok的注解
    1手动导入jar包2编译不通过,修改如下设置-Djps.track.ap.dependencies=false......
  • uniapp项目实践总结(七)编写一个简单的应用页面
    之前自定义了顶部和底部导航栏,那接下来就写一个简单的二级页面,这个是出了导航页面之外经常用到的。目录结构模板样式方法示例结构一个普通页面的结构应该是如下所示:<!--html--><template><viewclass="list">列表内容</view></template><!--js--><scrip......
  • TS 项目加入 ESLint 进行代码检查
    安装依赖npminstalleslint@typescript-eslint/parser@typescript-eslint/eslint-plugin--save-deveslint:ESLint核心包。@typescript-eslint/parser:用于解析TypeScript代码。@typescript-eslint/eslint-plugin:包含一些针对TypeScript的ESLint规则。创建ES......
  • JavaFX+SpringBoot桌面项目并打包成exe可执行文件
    1.创建标准Maven工程2.引入依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=&quo......
  • vue项目中全局引入cass(scss)变量和sass(scss) mixin
    1、使用场景variable.scss文件样例//颜色定义规范$color-background:#222;mixin.scss文件样例//背景图片@mixinbg-image($url){background-image:url($url+"@2x.png");@media(-webkit-min-device-pixel-ratio:3),(min-device-pixel-ratio:3){background-i......
  • Springboot项目打成jar包,如何设置存储路径?并且上传的静态文件如何访问?
    第一步设置资源资源存储路径找到需要保存指定文件路径添加以下代码//保存上传的资源文件路径,路径在部署jar包同级目录。Stringpath=System.getProperty("user.dir")+"/static/images/";Filedir=newFile(path);if(!dir.exists()){dir.mkdirs();}......
  • sass-loader以及node-sass版本问题造成启动项目失败
    SyntaxError:ValidationError:Invalidoptionsobject.SassLoaderhasbeen报错解决方法解决方法是:更新sass-loader以及node-sass的版本。安装命令:npminstallsass-loader+版本         npminstallnode-sass+版本安装后重启项目即可......