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("命令按鍵被點擊");
}
}