WPF中的数据绑定概述
一、什么是 WPF 数据绑定?
一句话定义:
数据绑定 = 让界面控件 和 后台数据 自动同步。
数据绑定 = 让界面控件 和 后台数据 自动同步。
- 数据变 → 界面自动变
- 界面改 → 数据自动改
- 不用手动赋值、不用手动刷新
这就是 WPF 强大的根本原因。
二、数据绑定的核心三要素
任何绑定都必须有这 3 个东西:
- 目标(Target)
界面上的控件属性(如 Text、Width、Source) - 源(Source)
后台数据(变量、对象、集合、属性) - 绑定路径(Path)
要绑定数据源的哪个属性
三、最基础语法(必背)
1 {Binding 路径/属性名}
最简单示例:
1 <TextBlock Text="{Binding Name}" />
四、数据绑定的 4 种模式(Mode)
决定数据怎么同步:
- OneWay
数据变 → 界面变(只读展示) - TwoWay
双向同步(输入框、勾选框必用) - OneWayToSource
界面变 → 数据变(极少用) - OneTime
只初始化一次(高性能)
最常用:TwoWay、OneWay
五、数据源从哪里来?(4 种来源)
-
DataContext(最常用、MVVM 核心)
1 <Window DataContext="{Binding MyViewModel}">
2.RelativeSource 相对绑定
绑定到自己、父元素
3.ElementName 绑定界面其他控件
1 <TextBlock Text="{Binding Text, ElementName=txtInput}" />
4.StaticSource 静态资源
六、MVVM 与数据绑定
MVVM 完全依赖数据绑定:
- Model:数据
- ViewModel:提供可绑定属性 + 命令
- View:界面,只做绑定,不写逻辑
View 与 ViewModel 之间 0 耦合,全靠绑定通信。
七、让绑定 “自动更新” 的关键接口
如果希望后台数据变了,界面自动刷新,必须实现:
1. INotifyPropertyChanged
属性变更通知(单个属性)
2. INotifyCollectionChanged
集合变更通知(ObservableCollection)
这是 WPF 绑定能自动刷新的底层原理。
八、常用高级功能
- 转换器(IValueConverter)
数据值 → 界面显示值(如 男 / 女 → 蓝色 / 粉色) - 数据触发器(DataTrigger)
根据数据值改变样式 - 命令绑定(ICommand)
按钮点击绑定到后台方法(MVVM) - 校验(Validation)
输入合法性检查
九、一句话总结(最核心)
WPF 数据绑定 = 界面与数据自动同步的桥梁,是 MVVM 的灵魂。
浙公网安备 33010602011771号