主页面代码

 public partial class MainWindow : Window
{
MainViewModel mainViewModel = null;
public MainWindow()
{
InitializeComponent();
mainViewModel = new MainViewModel();
this.DataContext = mainViewModel;
}
}

页面设计

<TextBox x:Name="First" Width="80" Height="20" Text="{Binding Value}" Foreground="{Binding BorderColor}"></TextBox>
<Button x:Name="Second"
Width="100"
Height="30"
HorizontalAlignment="Left"
Margin="80,0"
Content="按钮"
Command="{Binding ValueCommand}"//通过这个绑定按钮命令
CommandParameter="123"//传递按钮参数
></Button>

定义Command

public class CommandBase : ICommand
{
public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter)
{
return true;
} public void Execute(object parameter)
{
DoAction?.Invoke(parameter);//命令传递到这个委托
}
public Action<object> DoAction { get; set; }
}

ViewModel页面定义

public class MainViewModel:INotifyPropertyChanged
{
private string _value="200";
public string Value
{
get { return _value; }
set {
_value = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Value"));//响应式
}
} private Brush _borderColor=Brushes.Red; public event PropertyChangedEventHandler PropertyChanged;//参数变化事件 public Brush BorderColor
{
get { return _borderColor; }
set { _borderColor = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ValueColor"));
}
} private ICommand _valueCommand; public ICommand ValueCommand
{
get {
if (_valueCommand==null)
{
_valueCommand = new CommandBase() { DoAction = new Action<object>(ValueCommandAction) };//命令执行的方法
}
return _valueCommand; }
set { _valueCommand = value; }
}
private void ValueCommandAction(object obj)
{
Value = "299";
}
}

2021-11-30 WPF的MVVM绑定的更多相关文章

  1. 2021.11.30 eleveni的水省选题的记录

    2021.11.30 eleveni的水省选题的记录 因为eleveni比较菜,eleveni决定先刷图论,再刷数据结构,同时每天都要刷dp.当然,对于擅长的图论,eleveni决定从蓝题开始刷.当然 ...

  2. .NET CORE(C#) WPF简单菜单MVVM绑定

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF简单菜单MVVM绑定 阅读导航 本文背景 代码实现 本文参考 ...

  3. WPF使用MVVM(一)-属性绑定

    WPF使用MVVM(一)-属性绑定 简单介绍MVVM MVVM是Model(数据类型),View(界面),ViewModel(数据与界面之间的桥梁)的缩写,是一种编程模式,优点一劳永逸,初步增加一些逻 ...

  4. WPF使用MVVM(二)-命令绑定

    WPF使用MVVM(二)-命令绑定 上一节已经介绍了WPF的属性绑定,这使得我们只需要指定界面的DataContext,然后就可以让界面绑定我们的属性数据呢. 但是上一节还遗留了一个问题就是我们的按钮 ...

  5. WPF中TreeView控件SelectedItemChanged方法的MVVM绑定

    问题描述:左侧treeview控件中点击不同类别的节点时,右侧的页面会显示不同的权限.比如对于My Publications,拥有Modify和Delete两种权限,对于My Subscription ...

  6. WPF采用MVVM模式(绑定:纯前台、命令:触发器绑定命令)

    MVVM绑定 view-viewModel-model,模型介绍省略,就是创建类,添加字段封装属性.注:控件的绑定只能绑定到属性上,不能绑定到字段上: 接下来就是代码 (view): <Wind ...

  7. 在XAML中为ItemsControl定义分组,适合mvvm绑定

    可以先参考一下这个文章: http://www.cnblogs.com/zoexia/archive/2014/11/30/4134012.html step0: 先展示一下最简陋的界面: 上图是一个 ...

  8. 在WPF的MVVM框架中获取下拉选择列表中的选中项

    文章概述: 本演示介绍怎样在WPF的MVVM框架中.通过数据绑定的方式获取下拉列表中的选中项.程序执行后的效果例如以下图所看到的: 相关下载(代码.屏幕录像):http://pan.baidu.com ...

  9. WPF使用MVVM(三)-事件转命令

    WPF使用MVVM(三)-事件转命令 上一节介绍了WPF中的命令,可是仅仅介绍的是WPF框架给我们提供的点击命令,也就是用Command属性来绑定一个命令,用来响应按钮的点击行为!显然这是不够的,界面 ...

  10. WPF 微信 MVVM 【续】发送部分QQ表情

    今天主要记录的就是发送QQ表情, WPF 微信 MVVM里写了,后期为了发送QQ表情,需要把TextBox替换为RichTextBox,接下来就说说替换的过程. 一.支持Binding的RichTex ...

随机推荐

  1. Python_13 接口测试openpyxl和表操作

    一.openpyxl 安装   pip install openpyxl  在Terminal中输入 excel操作步骤 找到目标excel 打开 读取数据.编辑excel单元格 保存 关闭 open ...

  2. css实现水平垂直居中的几种方法

    一,已知宽高 1 <style> 2 #box { 3 height: 400px; 4 width: 400px; 5 border: 1px solid grey; 6 positio ...

  3. MySQL(Zip版)安装配置

    MySQL官网下载地址:MySQL 将压缩包内文件夹解压至任意目录,以mysql-5.7.40版本为例 第一步 添加环境变量 将mysql-5.7.40-winx64文件夹内的bin文件夹添加到环境变 ...

  4. 使用 Lambda 函数将 CloudWatch Log 中的日志归档到 S3 桶中

    > 作者:[SRE运维博客](https://www.cnsre.cn/) > 博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/) &g ...

  5. 使用STM32CubeMX生成ThreadX实时操作系统工程模板

    博客主页:链接.转载请注明出处! 由于需要在stm32上使用USB Host CDC-ECM,连接EC20发送数据到服务器,接触到了ThreadX实时操作系统. 在调研过程中,发现stm32官方USB ...

  6. 2023-01-02:某天,小美在玩一款游戏,游戏开始时,有n台机器, 每台机器都有一个能量水平,分别为a1、a2、…、an, 小美每次操作可以选其中的一台机器,假设选的是第i台, 那小美可以将其变成

    2023-01-02:某天,小美在玩一款游戏,游戏开始时,有n台机器, 每台机器都有一个能量水平,分别为a1.a2.-.an, 小美每次操作可以选其中的一台机器,假设选的是第i台, 那小美可以将其变成 ...

  7. < Python全景系列-7 > 提升Python编程效率:模块与包全面解读

    欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法.无论你是编程新手,还是有一 ...

  8. 华为防火墙NAT技术

    ---我是陈小瓜,一个普通的路人,和大家一起交流学习,完善自己. 源NAT NAT-no-pat 安全策略写法: 源NAT,写安全策略,写转换前的私网IP,因为先匹配安全策略.再匹配NAT策略 NAT ...

  9. 解决适用EntityFramework生成时报错“无法解析依赖项。"EntityFramework 6.4.4" 与 ' EntityFramework.zh-Hans 6.2.0 约束:EntityFramework(=6.2.0)'不兼容。"

    起因:通过vs2022创建mvc项目时, 执行添加"包含视图的MVC5控制器(使用Entity Framework)时 点击添加,出现错误提示  解决方法: 在您的解决方案资源管理器中,右键 ...

  10. C#/.Net的多播委托到底是啥?彻底剖析下

    前言 委托在.Net里面被托管代码封装了之后,看起来似乎有些复杂.但是实际上委托即是函数指针,而多播委托,即是函数指针链.本篇来只涉及底层的逻辑,慎入. 概括 1.示例代码 public delega ...