WPF+Prism 模块化编程(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

WPF+Prism 模块化编程(一)

  • 一、Prism项目创建安装
  • 二、将项目升级为Prism项目
  • 三、将Prism项目升级为支持模块化编程项目


一、Prism项目创建安装

1、新建WPF项目,创建基于 .NET Framework 框架的应用程序,项目名称为 PrismModelDemo,创建步骤如下所示。
在这里插入图片描述
在这里插入图片描述
项目创建完成后,新建Views文件夹和ViewModels 文件夹,移动 MainWindow.xaml 至 Views文件下,在ViewModels文件中新建 MainWindowViewModel.cs, 最终将自动生成的项目目录调整至如下所示:
在这里插入图片描述
注意事项:移动 MainWindow.xaml 至 Views文件后需要修改两个地方的文件路径,App.xml StartupUri=“MainWindow.xaml” 改成 StartupUri=“Views/MainWindow.xaml”,MainWindow.xaml 中 x:Class=“PrismModelDemo.MainWindow” 改为 x:Class=“PrismModelDemo.Views.MainWindow” ,修改后如下图所示:

在这里插入图片描述
在这里插入图片描述

二、将项目升级为Prism项目

1、打开NuGet依赖包管理界面,搜索 Prism,选择 Prism.Unity 安装。
在这里插入图片描述
2、Prism框架的MVVM绑定方式
在 MainWindow.xmal中添加Prism空间引用和自动绑定功能属性开启,这里我们注意的是,所用程序的视图模型均以ViewModel为结尾,并且存放路径为 ViewModels文件夹。

在这里插入图片描述
3、测试ViewModel是否成功绑定
在MainWindow.xmal后台窗体加载事件输出当前窗体绑定的视图文件。设置断点,运行程序,查看变量是否为对应视图文件。
在这里插入图片描述

三、将Prism项目升级为支持模块化编程项目

1、修改启动程序的继承类,将继承 Application 的对象修改为 PrismApplication ,前后端修改如下所示:
在这里插入图片描述
在这里插入图片描述
2、修改完成后直接生成应用程序,提示App未实现两个抽象类,点击Teb 自动实现后修改如下,实现 PrismApplication 接口方法,将主窗体实例化后回传到接口,然后删除前端的启动属性绑定的启动窗体。

在这里插入图片描述
在这里插入图片描述
至此,我们完成了一个WPF+Prism 模块化编程的项目结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/783447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四道题搞懂二叉树深度

二叉树的最大深度(LeetCode104) 先表示左树的深度,再表示右树的深度。再进行条件判断 class solution {public int maxDepth(TreeNode root) {if (root null) {return 0;}int leftDepth maxDepth(root.left);int rightDepth maxDepth(ro…

zookeeper常见命令详解2

1、version 展示客户端版本 [zkshell: 1] version ZooKeeper CLI version: 3.6.0-SNAPSHOT-29f9b2c1c0e832081f94d59a6b88709c5f1bb3ca, built on 05/30/2019 09:26 GMT2、whoami 展示出所有已经添加(addauth)用户的信息 [zkshell: 1] whoami Auth sch…

JAVA面试大全之集合IO篇

目录 1、集合 1.1、Collection 1.1.1、集合有哪些类? 1.1.2、ArrayList的底层?

算法系列--动态规划--特殊的状态表示--分析重复子问题

💕"轻舟已过万重山!"💕 作者:Lvzi 文章主要内容:算法系列–算法系列–动态规划–特殊的状态表示–分析重复子问题 大家好,今天为大家带来的是算法系列--动态规划--特殊的状态表示--分析重复子问题 一.组合总数IV 链接…

蓝桥集训之游戏

蓝桥集训之游戏 核心思想:博弈论 区间dp 设玩家1的最优解为A 玩家2的最优解为B 1的目标就是使A-B最大 2的目标就是使B-A最大 当玩家1取L左端点时 右边子区间结果就是玩家2的最优解B-A 即当前结果为w[L] – (B-A) 当玩家1取R右端点时 左边子区间结果就是玩家2的最…

Mybatis-特殊SQL的执行

1. 模糊查询 在MyBatis中进行模糊查询时,有以下三种常见的实现方式: 1.1. 错误示范 先来个准备操作,并做一个错误示例 根据姓名,模糊查询用户,(x小x) 更新数据表 SQLMapper.java package com.sakurapaid.mybatis3…

力扣top100-两数之和

思路: 用 hashMap 存储遍历过的元素和对应的索引。 每遍历一个元素,看看 hashMap 中是否存在满足要求的目标数字。 所有事情在一次遍历中完成(用了空间换取时间)。 // twoSum 函数接受一个整数数组 nums 和一个目标值 target&am…

Win10 搭建FTP存储服务器站点【超详细教程】

目录 第一步:打开控制面板>程序 第二步:win10左下角搜索IIS并打开 第三步:右键网站,选择添加FTP站点 第四步:添加FTP站点名称 第五步:添加IP地址和端口 第六步:身份验证与授权信息 第…

Next.js 客户端组件跨页面跳转时锚点不生效,scrollIntoView 不起作用

项目场景 点击页脚“联系我们”链接&#xff0c;跳转到对应页面的“联系我们”模块。 问题描述 在页脚处“联系我们”代码如下&#xff1a; <a href"/about_us#contactUs">联系我们</a>在“联系我们”的组件中写以下代码&#xff1a; export default…

浅谈Spring体系的理解

浅谈Spring知识体系 Spring Framework架构图Spring家族技术生态全景图XMind汇总 本文不涉及细节&#xff0c;主要回答两个问题&#xff1a; Spring家族技术生态全景图有哪些Spring Framework架构下每个模块有哪些东西&#xff0c;以及部分模块之间的关联关系 Spring Framework架…

爬虫工作量由小到大的思维转变---<第六十五章 > Scrapy去重机制:BaseDupeFilter与request_fingerprint研究

前言&#xff1a; 一下子讲了bloom过滤器&#xff1a;爬虫工作量由小到大的思维转变---&#xff1c;第六十四章 &#xff1e; Scrapy利用Bloom过滤器增强爬虫的页面去重效率-CSDN博客 在网络爬虫的设计中&#xff0c;请求去重是一个至关重要的环节&#xff0c;它直接关系到爬虫…

C语言操作符详细讲解

前言 本次博客一定会让刚刚学习C语言小白有所收获 本次操作符讲解不仅分类还会有代码示例 好好看 好好学 花上几分钟就可以避免许多坑 1 操作符的基本使用 1.1操作符的分类 按功能分 算术操作符&#xff1a; 、- 、* 、/ 、% 移位操作符: >> << 位操作符…

华为OD机试 - 芯片资源限制(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

【数据分享】1981-2023年全国各城市逐日、逐月、逐年最高气温(shp格式)

气象数据是我们在各种研究中都会使用到的基础数据&#xff0c;之前我们分享了Excel格式的1981-2023年全国各城市的逐日、逐月、逐年最高气温数据。 好多小伙伴拿到数据后问我们有没有GIS矢量格式的该数据&#xff0c;我们专门对数据进行了处理&#xff0c;转换为了GIS矢量格式…

【git】git使用手册

目录 一 初始化 1.1 账号配置 1.2 ssh生成 1.2.1 配置ssh 1.2.2 测试SSH 1.3 初始化本地仓库并关联远程仓库 二 使用 2.1 上传 2.2 拉取 三 问题 3.1 关联失败 一 初始化 git的安装很简单,下载后大部分进行下一步完成即可----->地址: git工具下载 1.1 账号配置…

星光/宝骏/缤果/长安 车机CarPlay盒子权限破解原理普及----小白版本

来看一下我提供的 usb_device_manager.xml 文件内容 <?xml version1.0 encodingutf-8 standaloneyes ?> <settings><preference package"cn.manstep.phonemirrorBox" user"0"><usb-device vendor-id"4884" product-id&q…

文件系统 FTP Ubuntu 安装入门介绍

FTP 环境: Ubuntu 14.04 blog zh_CN ubuntu14.04 Install 全新安装&#xff1a;apt-get install vsftpd 重新安装:apt-get --reinstall install vsftpd 卸载并清除配置文件&#xff1a;apt-get --purge remove vsftpd Start & Restart $ service vsftpd start $ se…

金额转换.java

题目&#xff1a; 奖金额转换成大写的七位数 分析&#xff1a;获取每一位数字&#xff0c;将数字转为大写的&#xff0c;数字前面添零&#xff0c;补成七位数&#xff0c;最后依次拼接单位 package text; import java.util.Scanner; public class MoneySwitch {public static v…

Qt/QML编程之路:QPainter与OpenGL的共用(49)

在Qt编程中,有时会有这样一种场景:用OpenGL显示了一个3维立体图,但是想在右下角画一个2D的表格,里面写上几个字。那么这个时候就会出现QPainter与OpenGL共用或者说2D、3D共用。但是问题是调用了QPainter,drawline之后呢,OPenGL的状态被清空了丢失了,3D不显示了。 在Ope…

【软考高项范文】论信息系统项目的采购管理

试题二:论信息系统项目的采购管理 项目采购管理是从项目团队外部购买或获得为完成项目工作所需的产品、服务或成果的过程。 请以“论信息系统项目的采购管理”为题进行论述: 1.概要叙述你参与管理过的信息系统项目(项目的背景、项目规模、发起单位、目的、项目内容、组织结构…