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("命令按键被点击");}}