WPF 继承INotifyPropertyChanged数据改变更新UI

第一步:

定义一个类,例如Student 需要继承INotifyPropertyChanged,

详细的说明如代码中的说明

 public class Student:INotifyPropertyChanged
    {
        string _name="";
        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                 _name=value;
                 //需要通知UI改变的变量,在这里调用你定义的函数
                 OnPropertyChanged("Name");
            }
        }

        //这个是INotifyPropertyChanged接口中的变量
        public event PropertyChangedEventHandler PropertyChanged;
        
        //自定义一个函数OnPropertyChanged(函数名字任意)
        protected  void OnPropertyChanged(string propertyName = null)
        {
            //发出事件通知UI
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }

第二步 界面更新

界面绑定

<Grid>
     <TextBlock x:Name="textBlock1"  Text="{Binding Name}" />
</Grid>
   class MainWindow : Window
    {

        public Student student;
        public MainWindow()
        {
            InitializeComponent();
          
            student = new Student();
            this.DataContext = student; //设置上下文为student 这样textbox能找到Name的属性
            

            student.PropertyChanged += Student_PropertyChanged;//代码中也可以订阅一下属性改变 
            做替他的操作 这个和UI更新无关
            
        }

        private void Student_PropertyChanged(object sender, 
        System.ComponentModel.PropertyChangedEventArgs e)
        {
            //"属性值改变了";
        }

     }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值