WPF INotifyPropertyChanged实现数据双向绑定
2021/4/9 18:57:09
本文主要是介绍WPF INotifyPropertyChanged实现数据双向绑定,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
定义一个Person实体类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; namespace Wpf { public class Person : INotifyPropertyChanged { private String _name; private int _age; public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public String Name { set { _name = value; this.OnPropertyChanged(nameof(Name));//对Name进行监听 } get { return _name; } } public int Age { set { _age = value; this.OnPropertyChanged(nameof(Age)); } get { return _age; } } } }
<TextBlock Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/> <TextBlock Text="{Binding Age, UpdateSourceTrigger=PropertyChanged}"/> <!--UpdateSourceTrigger Explicit,源不会更新除非你手动来操作。正因为这个原因,我在这个TextBox旁边添加了一个按钮,用于手动更新源。在后台代码中,我们看到点击事件处理方法里面只有两行代码,第一行获取目标控件的绑定,第二行调用UpdateSource()方法; LostFocus,对于Text绑定来说其实就是一个默认值。也就是说一旦目标控件失去焦点,源就会被更新; PropertyChanged,一旦绑定的属性值改变,源会立即更新。本例中文本改变就产生这种效果;-->
这样就可以实现数据源变动UI就是实时更改,前端用户手动修改数据源也会进行刷新;
这篇关于WPF INotifyPropertyChanged实现数据双向绑定的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Excel中实现拖动排序的简单教程
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解