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-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!