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("命令按键被点击");
        }
    }
posted @ 2025-09-24 16:54  鸭子进京赶烤  阅读(11)  评论(0)    收藏  举报