WPF学习之-绑定
一、将元素绑定到一起
数据绑定的最简单情形是源对象是WPF元素,而且源属性是依赖属性。
绑定表达式如下:
<TextBox Text="{Binding Path=Value,ElementName=slider1}"/> <Slider x:Name="slider1"/>
绑定模式:
- OneWay:源变化时更新目标
- TwoWay:源和目标属性相互更新
- OneTime:实例化一次的时候更改
- OneWayToSource:目标属性变化更改源属性
- Default:此类绑定依赖与目标属性
绑定更新updateSourceTrigger枚举值
- PropertyChanged:当目标属性发生变化时立即更新源
- LostFouse:当目标属性发生变化并且目标丢失焦点时更新源
- Explicit:除非调用BindingExpression.UpdateSource()方法,否则无法更新源
- Default:根据目标属性的元数据确定更新行为,大多数属性行为时PropertyChanged,但TextBox.Text的属性默认行为是LostFous。
绑定延迟
使用Binding对象的Delay属性。
二、绑定到非元素对象
当绑定到非元素对象时,需要放弃Binding.ElementName属性,并使用以下属性中的一个:
- Source
- RelativeSource
- DataContext:如果没有使用Source和RelativeSource属性指定源,WPF就从当前元素开始在元素树中向上查找,检查每个元素的DataContext属性,并使用第一个非空的DataContext属性。当我要将同一个对象的多个属性绑定不同的元素时,DataContext非常有用。