创建基于Prism框架的WPF应用(NET Framework)项目

ops/2025/1/19 1:21:35/

创建基于Prism框架的WPF应用(NET Framework)项目
1、创建WPF(NET Framework)项目并整理结构
(1)、创建WPF(NET Framework)项目;
(2)、添加Views和ViewModels文件夹;
(3)、将MainWindow.xaml移到Views文件夹;
(4)、在ViewModels文件中新建 MainWindowViewModel.cs
(5)、修改App.xaml

StartupUri="MainWindow.xaml"

改为

StartupUri="Views/MainWindow.xaml"

(6)、修改MainWindow.xaml

x:Class="DemoTest.MainWindow"

改为

x:Class="DemoTest.Views.MainWindow"

(7)、修改MainWindow.xaml.cs

namespace HscpTest

改为

namespace HscpTest.Views

(8)、项目编译、运行正常。
2、升级为Prism框架
(1)、安装依赖包Prism.Unity 8.1.97
注意依赖包的版本,其它版本未必兼容。
(2)、在MainWindow.xaml中添加Prism引用,并自动开启

xmlns:prism="http://prismlibrary.com/"prism:ViewModelLocator.AutoWireViewModel="True"

(3)、修改MainWindow.xaml.cs

public MainWindow(){InitializeComponent();Loaded += MainWindow_Loaded;}private void MainWindow_Loaded(object sender, RoutedEventArgs e){var vm = DataContext as MainWindowViewModel;//throw new NotImplementedException();}

(4)、修改App.xaml

<prism:PrismApplication x:Class="HscpTest.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:HscpTest"xmlns:prism="http://prismlibrary.com/"StartupUri="Views/MainWindow.xaml"><!--xmlns:prism="http://prismlibrary.com/"--><Application.Resources></Application.Resources>
</prism:PrismApplication>

(5)、修改App.xaml.cs

protected override Window CreateShell(){return Container.Resolve<Views.MainWindow>();//throw new NotImplementedException();}protected override void RegisterTypes(IContainerRegistry containerRegistry){//containerRegistry.Register<Views.MainWindow>();//throw new NotImplementedException();}

(6)、删除App.xaml的启动设置

StartupUri="Views/MainWindow.xaml"

http://www.ppmy.cn/ops/151237.html

相关文章

leetcode 66. 加一

题目&#xff1a;66. 加一 - 力扣&#xff08;LeetCode&#xff09; 继续水题 class Solution { public:vector<int> plusOne(vector<int>& digits) {vector<int> ret;for (int i digits.size() - 1; i > 0; i--) {ret.push_back(digits[i]);}ret[…

基于Flutter的杰理OTA

目前杰理OTA只有安卓和IOS的SDK&#xff0c;由于项目使用了flutter框架&#xff0c;需要实现一个flutter版本的杰理OTA插件&#xff0c;本项目预计在2月份发布1.0.0版本&#xff0c;感兴趣的同学可持续关注 github仓库地址 快速开始 待定 接入答疑 待定 详细介绍 待定

Python自学 - 标准库介绍

<< 返回目录 1 Python自学 - 标准库介绍 标准库是安装Python时自带的一些模块集合&#xff0c;集成了丰富的功能&#xff0c;避免用户反复造轮子&#xff0c;这极大的提高了生产效率&#xff01; 1.1 几种常用的标准库 1.1.1 os 模块 提供了与操作系统交互的接口&…

[深度学习]神经网络线性回归简易实例

线性回归简易实例 文章目录 线性回归简易实例导入模块所模拟的模型生成数据获取数据定义模型定义LOSS使用模型拟合出真实参数实现梯度下降函数&#xff0c;用于更新参数训练函数 完整代码 导入模块 import torch import matplotlib.pyplot as plt #画图import random #随机tor…

SpiderFlow平台v0.5.0之引入selenium插件

引入selenium插件 首先到码云下载插件点击下载​编辑到本地并导入到工作空间或安装到maven库在spider-flow/spider-flow-web/pom.xml中引入插件 <!-- 引入selenium插件 --> <dependency><groupId>org.spiderflow</groupId><artifactId>spider-…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…

MES设备日志采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…

记录点android升级内容

Cleartext HTTP traffic to yun.tjwzkj.com not permitted 在android中不仅要由网络权限<uses-permission android:name"android.permission.INTERNET"/>&#xff0c;而且需要在Application中增加android:usesCleartextTraffic"true" 还可以创建xml…