元素与元素之间的绑定
XAML 目标元素属性值="{Binding ElementName=源元素名称,Path=源元素属性}"
XAML绑定错误不会引发异常,但会在VS的Output窗口看到相关的报错信息。
绑定模式(BindingMode)有五种,如:OneWay、TwoWay、OneTime、OneWayToSource、Default
关于绑定模式值得一提的是,依赖属性存在默认绑定模式,这个默认绑定模式可能是单向或是双向中的其中一种,不同控件的默认绑定模式是不同的。
提倡在写代码时,将绑定模式明确地声明出来。
绑定可以由XAML创建,也可以由C#代码创建。
绑定可以由C#代码删除,即ClearBinding()、ClearAllBinding()
使用代码检索绑定
BindingOperations.GetBinding(元素名,元素类型.元素属性)
BindingOperations.GetBindingExpression(元素名,元素类型.元素属性)
//这里的ResolvedSource属性能获取绑定数据对象的引用
BindingExpression expression = BindingOperations.GetBindingExpression(test_tb, test_tb.Text);
TextBlock tb = (TextBlock)expression.ResolvedSource;
string txt = tb.Text;
//UpdateSource()和UpdateTarget()用于手动使数据变更生效
expression.UpdateSource();
expression.UpdateTarget();
UpdateSourceTrigger:决定了属性值变化后通知绑定数据源的时机。
在表达式中添加例如:Delay=500,可使绑定延迟更新到源对象中。
元素绑定到非元素对象
Source属性:绑定到数据对象。
RelativeSource属性:寻找某种类型的父元素的某个属性值。
DataContext属性:可用于MVVM绑定,通过数据上下文DataContext一次性定义绑定源。