当前位置: 首页 > news >正文

Prism框架下MVVM模式中命令实现

在这里插入图片描述

前言

命令在MVVM模式中非常重要,本文就来讲解如何在Prism框架下实现MVVM模式中的命令。

1、新建ViewModel类

使用DelegateCommand类来实例化ICommand接口,这里以最小化窗口为例,CommandMinWindow 命令绑定的方法MinWindow中将属性ShellWindowState设置为 WindowState.Minimized;

[Export(typeof(ViewModel))]public class ViewModel : BindableBase{private IRegionManager regionManager;private IEventAggregator eventAggregator;[ImportingConstructor]public ViewModel(IRegionManager _regionManager, IEventAggregator _eventAggregator){this.regionManager = _regionManager;InitialCommand();eventAggregator = _eventAggregator;}public ICommand CommandWindowLoaded { get; set; }public ICommand CommandMinWindow { get; set; }public ICommand CommandZoonWindow { get; set; }public ICommand CommandExitApplication { get; set; }private void InitialCommand(){CommandWindowLoaded = new DelegateCommand<System.Windows.Window>(WindowLoaded);CommandMinWindow = new DelegateCommand(MinWindow);CommandZoonWindow = new DelegateCommand(ZoomWindow);CommandExitApplication = new DelegateCommand(ExitApplication);}private WindowState shellWindowState;public WindowState ShellWindowState{get { return shellWindowState; }set { SetProperty(ref shellWindowState, value); }}private void WindowLoaded(System.Windows.Window obj){}private void MinWindow(){ShellWindowState = WindowState.Minimized;}private void ZoomWindow(){ShellWindowState = ShellWindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;}private void ExitApplication(){MessageBoxResult result = System.Windows.MessageBox.Show("您需要退出程序吗?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);if (result == MessageBoxResult.Yes){Process.GetCurrentProcess().Kill();}}}

2、设置DataContext属性的值

我们在MVVM模式中主要就是指定Binding的源是DataContext属性,这里DataContext属性的值就是ViewModel类的对象,这里使用Mef的Import特性将ViewModel对象通过属性注入的方式赋值给DataContext属性
在这里插入图片描述

3、建立命令绑定关系

设置Command的值,使用Binding绑定ViewModel类中的CommandMinWindow命令,这里的CommandMinWindow就是ViewModel类中的已经实例化的ICommand接口。

<Button  Margin="0 5 3 0" Command="{Binding CommandMinWindow}" Content="最小化" Height="25" Width="40" Background="Red"   BorderThickness="0">

4、执行

当我们点击按钮”最小化“,这时MinWindow就能执行。

在这里插入图片描述

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》
7、《C#操作MySql数据库从入门到精通》

http://www.dtcms.com/a/496712.html

相关文章:

  • 外国人的做视频网站吗主流的网站开发框架
  • 微信网站什么做盐城网站优化工作室
  • 游戏设计网站深圳网络建设公司
  • 常德网站建设制作网站设计公司有用吗
  • 肘部法找k
  • 自助建站是什么意思邯郸网站建设优化
  • 优秀的网站通过什么提供信息合肥市门户网站
  • YooAsset运行机制
  • CC12-拆分词句
  • 室内设计网站参考手机能建设网站吗
  • 做网站宁波有什么的网络公司网页设计与制作公告栏
  • 直播美颜SDK功能开发实录:自然妆感算法、人脸跟踪与AI美颜技术
  • 建设网站怎么查明细想开广告公司怎么起步
  • Monkey 综合运用参考
  • 如何做网站内页制作一个视频网站
  • seo网站首页推广跨境电商要投资多少钱
  • html5导航网站邮箱网址查询
  • 中药饮片供应商的市场机会及其重要性是什么?
  • 说一下JM有哪些垃圾回收器?
  • 深州网站网站建设公司哪家好要选磐石网络
  • 做网站工资年新多少在广东专门做图的网站
  • 亦庄网站开发html网页制作超链接
  • 价格低英语翻译网络优化面试问题
  • 【文档】部署 alertmanager
  • 舟山公司网站建设域名访问网站的知识
  • 商城网站建设浩森宇特扬中网站网站建设
  • [MLflow] 追踪 | 运行与实验 | 创建首个MLflow实验
  • 网站注销备案软装设计师常用网站
  • 织梦网站动态网站制作 php
  • 网络电商培训课程网站设计安装wordpress教程