WPF的数据绑定之通知修改

WPF的数据绑定之通知修改

1 添加接口

internal class MainViewModel : INotifyPropertyChanged
{// 添加通知事件public event PropertyChangedEventHandler? PropertyChanged;
}

2 在类中添加相关参数事件调用

private string _name;
public string Name
{get { return _name; }set { _name = value;PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name)));}}

逻辑优化:

1 添加一个专门的通知修改类

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;namespace MyToDo.NewClass
{public class ViewModelBase : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;public void OnPropertyChanged([CallerMemberName] string ? propertyName=""){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}
}

2 修改原来的ViewMode

    internal class MainViewModel : ViewModelBase{public MainViewModel(){Name = "";ShowCommand = new MyCommand(ShowMessage);}public MyCommand ShowCommand { get; set; }private string _name = "";public string Name{get { return _name; }set{_name = value;OnPropertyChanged();}}public void ShowMessage(){Name = "Click Command Button";MessageBox.Show("命令按键被点击");}}