看到一些资料与教程视频,在这里记录一下,

首先 我们先做好一个公共的INotifyPropertyChanged事件,也就是通知更新

 public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}

再创建命令类

public class MyCommand : ICommand
{ Action executeAction;
public MyCommand(Action action)
{
executeAction = action;
}
public event EventHandler? CanExecuteChanged; public bool CanExecute(object? parameter)
{
return true;
} public void Execute(object? parameter)
{
executeAction();
}
}

然后创建我们要ViewModel类,要引用到前面写好的通知更新类, 把方法放在set中,也就是OnPropertyChanged()方法

public class MainViewMoel:ViewModelBase
{
public MainViewMoel()
{
Name = "GGG";
ShowCommand = new MyCommand(Show);
} public MyCommand ShowCommand { get; set; }
private string name ="";
public string Name { get { return name; }
set
{
name = value;OnPropertyChanged();
}
}
public void Show()
{
Name = "1111111111";
MessageBox.Show("这是个按钮!");
}
}

最后赋值到我们的对应的页面上

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

xaml 中也要绑定对应的控件中

 <StackPanel >
<TextBox Height="50" Text="{Binding Name}" x:Name="txtName" Margin="5"/>
<Button Height="50" Command="{Binding ShowCommand}" x:Name="Btn" Margin="5"/>
</StackPanel>

这样就是一个测试的绑定并通知的Demo,用于以后参考

视频讲解来源WPF项目实战合集(2022终结版)_哔哩哔哩_bilibili

主要是OnPropertyChanged()方法 能够很方便的去使用

最新文章

  1. jQuery 2.0.3 源码分析 回溯魔法 end()和pushStack()
  2. HTTP 协议缓存
  3. Android 图片三级缓存
  4. 腾讯大规模Hadoop集群实践 [转程序员杂志]
  5. poj 3311(floyd+状态压缩)
  6. jQuery的animate方法在IE8下出现小问题
  7. leetcode第30题--Next Permutation
  8. 最短路 HDU 2544
  9. immutable日常操作之深入API
  10. ARM非对齐操作异常解决过程
  11. WebService(1-1)webservice调用
  12. 搭建rancher节点
  13. 使用asp.net MVC的 HtmlHelper 时遇到的小问题,报错:Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
  14. NetCore 生成RSA公私钥对,公钥加密私钥解密,私钥加密公钥解密
  15. PC/FORTH 变量|常数|数组
  16. 论文笔记之:SeqGAN: Sequence generative adversarial nets with policy gradient
  17. public void method(),void前面的泛型T是什么
  18. linux环境中,ssh登录报错,Permission denied, please try again.
  19. 深入理解$watch ,$apply 和 $digest --- 理解数据绑定过程——续
  20. 3Sum Closest - LeetCode

热门文章

  1. CentOs7.6配置邮件服务并发送邮件
  2. iOS App程序内多语言国际化实现 By HL
  3. Java中的多线程你只要看这一篇就够了(引用)
  4. Springboot+Websocket+JWT实现的即时通讯模块
  5. 基于3U PXIe的ZU7EV图像编解码设计方案
  6. MXNet学习-第一个例子:训练MNIST数据集
  7. c++ 文本处理
  8. MySQL架构原理之运行机制
  9. 聊聊几个阿里 P8、P9 程序员的故事
  10. HMS Core在MWC2022展示最新开放能力,助力开发者构建精品应用