WPF | 跟着视频敲代码7 | 命令Command和通知更改INotifyPropertyChanged
Posted on 2022-07-19 06:54 董锡振 阅读(43) 评论(0) 编辑 收藏 举报视频地址:https://www.bilibili.com/video/BV1nY411a7T8?p=7
实现效果:
命令Command UI与后台代码分离 当业务变动减少代码修改量
笔记代码:
<Grid> <StackPanel Orientation="Horizontal"> <TextBox Text="{Binding Name}" Height="20" Width="200"></TextBox> <Button Command="{Binding ShowCommand}" Height="20" Width="60" Content="测试点击"></Button> </StackPanel> </Grid>
/// <summary> /// Demo9.xaml 的交互逻辑 /// </summary> public partial class Demo9 : Window { public Demo9() { InitializeComponent(); this.DataContext = new MainViewModel(); } }
using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Input; namespace WPF03 { public class MainViewModel : ViewModelBase { /// <summary> /// 供前端的Command命令Binding调用 /// </summary> public MyCommand ShowCommand { get; set; } public MainViewModel() { ShowCommand = new MyCommand(Show); } private string name; public string Name { get { return name; } set { name = value; OnPropertyChanged(); } } private string title; public string Title { get { return title; } set { title = value; OnPropertyChanged(); } } public void Show() { Title = "你点击了按钮 this is Title"; Name = "你点击了按钮 this is Name"; MessageBox.Show(Name); } } /// <summary> /// 属性变动赋值 为了页面的对应Bing时的联动 /// </summary> public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged([CallerMemberName] string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } /// <summary> /// 继承ICommand 声明委托Action 使用Execute执行 /// </summary> 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(); } } }
本文来自博客园,作者:董锡振,转载请注明原文链接:https://www.cnblogs.com/dongxizhen/p/16492654.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人