WPF的MVVMLight框架

在NuGet中引入该库:

MVVMLight框架中的命令模式的使用:

<StackPanel><TextBox Text="{Binding Name}"/><TextBox Text="{Binding Title}"/><Button Content="点我" Command="{Binding ShowCommand}"/>
</StackPanel>
DataContext = new MainViewModel();
internal class MainViewModel : ViewModelBase
{public MainViewModel(){Name = "hello";ShowCommand = new RelayCommand(Show);}public RelayCommand ShowCommand { get; set; }private string name;public string Name{get { return name; }set{name = value;RaisePropertyChanged();}}private string title;public string Title{get { return title; }set{title = value;RaisePropertyChanged();}}public void Show(){Name = "点击了按钮";Title = "点击了按钮";MessageBox.Show("点击了按钮");}
}

如果命令模式是需要从页面传参的情况呢?:

<StackPanel><TextBox x:Name="txtIput"/><TextBox Text="{Binding Title}"/><Button Content="点我" Command="{Binding ShowCommand}" CommandParameter="{Binding ElementName=txtIput,Path=Text}"/>
</StackPanel>
public MainViewModel()
{ShowCommand = new RelayCommand<string>(Show);
}
public RelayCommand<string> ShowCommand { get; set; }
public void Show(string content)
{Title = content;MessageBox.Show($"需要展示的数据:{content}");
}

使用MVVMLight框架的命令模式,发送消息和接受消息:

MainViewModel.cs类:

internal class MainViewModel : ViewModelBase
{public MainViewModel(){ShowCommand = new RelayCommand<string>(Show); // 注册消息}public RelayCommand<string> ShowCommand { get; set; }void Show(string content){Messenger.Default.Send(content, "token1"); // 发送器 发送string类型的消息}
}

MainWindow.xaml类:

public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();DataContext = new MainViewModel();// 接收器 接受string类型的消息 第二个参数:收件人Messenger.Default.Register<string>(this, "token1", Show);}void Show(string content){MessageBox.Show($"我收到消息了,消息的内容为:{content}");}
}

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

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

相关文章

ShenNiusModularity项目源码学习(8:数据库操作)

ShenNiusModularity项目使用SqlSugar操作数据库。在ShenNius.Repository项目中定义了ServiceCollectionExtensions.AddSqlsugarSetup函数注册SqlSugar服务&#xff0c;并在ShenNius.Admin.API项目的ShenniusAdminApiModule.OnConfigureServices函数中调用&#xff0c;SqlSugar所…

【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现

开题报告 该系统是一个全面的房地产销售平台&#xff0c;旨在提供用户一个一站式的购房体验。系统具备注册登录功能&#xff0c;允许用户注册账户并登录系统进行操作。在系统中&#xff0c;用户可以获取最新的房产资讯&#xff0c;包括房地产市场的动态、政策法规以及楼盘介绍…

啥是目标文件?目标文件里面有什么?

从c文件到二进制可执行文件主要经过预处理、编译、汇编和链接的过程&#xff0c;而在这些过程中参与到的文件类型主要有源文件、头文件、目标文件、静态库、动态库和可执行文件。下面表格对这些文件的生成过程和涉及到的步骤名称做个总结。 过程涉及文件编译source header -&…

Day45(补)【软考】2022年下半年软考软件设计师综合知识真题-计算机软件知识1

文章目录 2022年下半年软考软件设计师综合知识真题第1章 计算机系统基础知识(12/38)计算机软件知识1-6/6哲学概念及收敛思维&#xff1a;是Python程序语言中&#xff0c;处理异常的结构集合&#xff0c;和这个集合之外的结构的区分&#xff0c;考Python集合之外的结构 哲学概念…

Spring MVC Streaming and SSE Request Processing SSE可以实现chatgpt一次请求分批次响应的效果

1. Introduction This simple tutorial demonstrates the use of several asynchronous and streaming objects in Spring MVC 5.x.x. Specifically, we’ll review three key classes: ResponseBodyEmitterSseEmitterStreamingResponseBody Also, we’ll discuss how to i…

应对DeepSeek总是服务器繁忙的解决方法

最近由于访问量过大&#xff0c;DeepSeek服务器官网经常弹出&#xff1a;“服务器繁忙&#xff0c;请稍后再试”的提示&#xff0c;直接卡成PPT怎么办&#xff1f;服务器繁忙直接看到视觉疲劳&#xff1a; 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题&#xff0c;是因为访问量…

GoC题解(21) 725.画迷宫(下册第4课)

题目描述 真观察下面迷宫图。发现它是一个边长逐渐变长的15边回旋图&#xff0c;边长依次为10、20、30....。 参考答案 int main(){int len0;for(int i1;i<15;i){ len10;pen.fd(len).rt(90); }return 0; } 解题思路 使用一个变量来记录每次循环时应该画多长的边&#…

STM32之SG90舵机控制

目录 前言&#xff1a; 一、硬件准备与接线 1.1 硬件清单 1.2 接线 二、 SG90舵机简介 1.1 外观 1.2 基本参数 1.3 引脚说明 1.4 控制原理 1.5 特点 1.6 常见问题 三、 单片机简介 四、 程序设计 4.1 定时器配置 4.2 角度控制函数 4.3 主函数调用 五、 总结 …

在vscode中拉取gitee里的项目并运行

拉取项目: 方法一:vscode点击查看--->终端(或者直接通过快捷键ctrol+ `打开) 在终端内通过cd命令定位到你想存放项目的文件夹 例如:cd h: 通过命令:git clone 地址 例如:git clone newbee-mall-vue-app: 前端代码 等待拉取完成即可在对应文件夹下看到项目啦 方…

机器学习实战(2):数据预处理——机器学习的第一步

第2集&#xff1a;数据预处理——机器学习的第一步 在机器学习的旅程中&#xff0c;数据预处理是至关重要的第一步。它决定了模型训练的质量和最终性能。没有经过良好预处理的数据就像未经打磨的钻石&#xff0c;虽然可能蕴含价值&#xff0c;但难以展现其光彩。今天我们将深入…

B站视频同步思维导图(全)

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z 文章目录 前言分段视频一张思维导图版本手写版本联系作者 分段视频 Java基础 并发编程 MySQL redis…

Spring中@Import原理和使用

Import注解是Spring框架中一个非常强大的工具&#xff0c;它允许你将普通类、组件类、ImportSelector实现类和ImportBeanDefinitionRegistrar实现类引入到容器中。通过Import&#xff0c;你可以实现配置的模块化&#xff0c;使得代码更加清晰和易于维护。 Spring集成很多框架时…

《pytorch》——优化器的解析和使用

优化器简介 在 PyTorch 中&#xff0c;优化器&#xff08;Optimizer&#xff09;是用于更新模型参数以最小化损失函数的关键组件。在机器学习和深度学习领域&#xff0c;优化器是一个至关重要的工具&#xff0c;主要用于在模型训练过程中更新模型的参数&#xff0c;其目标是最…

第J2周:ResNet50V2算法实战与解析

文章目录 一、准备工作1.设置GPU2.导入数据3.查看数据 二、数据预处理1.加载数据2.可视化数据 总结 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1.设置GPU import tensorflow as tf gpus …

CAS单点登录(第7版)18.日志和审计

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; 日志和审计 Logging 概述 Logging CAS 提供了一个日志记录工具&#xff0c;用于记录重要信息事件&#xff0c;如身份验证成功和失败;可以对其进行自定义以生成用于故障排除的其他信息。…

Mybatisplus-IService

文章目录 简介IService如何继承基础业务完成复杂业务逻辑更简便的Lambda方法批处理 简介 IService类似于我们的BaseMapper吧 现在就是Service层的那些简单的CRUD也不用写了 下面是方法图 IService如何继承 不同于Mapper可以直接基础BaseMapper接口不用实现 我们的serviceIm…

一键安装教程

Maven 安装 右键 以管理员身份运行点击 下一步安装完成后会同步配置环境变量打开 cmd, 输入 mvn 查看mvn版本修改 maven 本地仓库地址 见图三, 本地新建文件夹&#xff0c;修改为你本地文件夹地址 Redis 安装 右键 以管理员身份运行点击 下一步会安装到选择的文件夹下 JAVA\R…

5分钟掌握LM Studio本地部署DeepSeek R1

文章目录 LM Studio安装与配置修改模型下载源下载DeepSeek R1模型模型选择配置模型部署API服务常见问题解决总结LM Studio安装与配置 下载地址:https://lmstudio.ai/ LM Studio 是一款专为开发者设计的轻量级集成开发环境(IDE),支持多种编程语言及框架,提供智能代码补全…

(前端基础)HTML(一)

前提 W3C:World Wide Web Consortium&#xff08;万维网联盟&#xff09; Web技术领域最权威和具有影响力的国际中立性技术标准机构 其中标准包括&#xff1a;机构化标准语言&#xff08;HTML、XML&#xff09; 表现标准语言&#xff08;CSS&#xff09; 行为标准&#xf…

Beszel监控Docker安装

一、Beszel Hub安装 #Beszel Hub安装 mkdir -p ./beszel_data && \ docker run -d \--name beszel \--restartunless-stopped \-v ./beszel_data:/beszel_data \-p 8090:8090 \henrygd/beszel#创建账号 账号/密码&#xff1a;adminadmin.com/adminadmin.com 二、Besz…