数据绑定是在应用 UI 与其显示的数据之间建立连接的过程。 如果绑定具有正确的设置,并且数据提供适当的通知,则在数据更改其值时,绑定到该数据的元素会自动反映更改。 数据绑定还意味着,如果元素中数据的外部表示形式发生更改,则基础数据可以自动进行更新以反映更改。 例如,如果用户编辑 TextBox
元素中的值,则基础数据值会自动更新以反映该更改。
WPF中的数据绑定,必须要有绑定目标和绑定数据源。绑定目标可以是任何可访问的属性或控件,例如 TextBox 控件的Text 属性。数据源可以是其他控件的属性,可以是对象实例、XAML 元素、ADO.NET Dataset、XML数据。 数据绑定就是WPF使用{Binding …}这个语句,Binding是用来实现界面控件的属性与后台数据之间的绑定,通过这种形式将前台界面与后台数据联系在一起达到界面与数据耦合的目的,Binding源是逻辑层的对象,Binding目标是UI层的控件对象,这样,数据就会源源不断通过Binding送达UI层,被UI层展现,也就完成了数据驱动UI的过程。如下图
Binding有一个重要的属性Mode,实现绑定中的数据流向。具体有如下几种
类型 | 说明 |
OneWay | 当绑定源(源)更改时,更新绑定目标(目标)属性。 此绑定类型适用于绑定的控件为隐式只读控件的情况 |
TwoWay | 当源属性或目标属性更改时都可自动更新对方。 此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案。 |
Binding还有一个重要的属性UpdateSourceTrigger,即更新触发器,决定用户在界面输入的数据在什么时候去修改数据源中的值,实现绑定中的数据流向。具体有如下几种:
类型 | 说明 |
Explicit | 仅在调用 UpdateSource 方法时更新绑定源。 |
LostFocus | 当绑定目标元素失去焦点时,更新绑定源。 |
PropertyChanged | 当绑定目标属性更改时,立即更新绑定源。 |
Bind还有path和ElementName属性,含义如下:
1.ElementName顾名思义就是根据Ui元素的Name来进行绑定
2.使用 Path 属性可以指定您要绑定到的源值:
在最简单的情况下,Path 属性值是要用于绑定的源对象的属性名,如 Path=PropertyName。
通过类似于 C# 中使用的语法,可以指定属性的子属性。例如,子句 Path=ShoppingCart.Order 设置与对象或属性 ShoppingCart 的Order 子属性的绑定。
下一节,进行具体的操作例子。