绑定到非元素对象

上篇文章写了如何绑定到元素,这里介绍从不可见对象中提取数据的绑定表达式。唯一的要求是希望显示的信息必须存储在公有属性中。WPF数据绑定基础结构不能获取私有信息或公有字段。
Source属性:最简单的选择是将Source属性指向一些已经准备好了的静态对象。例如,可在代码中创建一个静态对象并使用改对象。或者,可以使用来自.NET类库的组件。


这个绑定表达式获取由静态属性SystemFonts.IconFontFamily提供的FontFamily对象,然后将Binding.Path属性设置为FontFamily.Source属性,该属性给出了字体家族的名称。
另一种选择是绑定到先前作为资源创建的对象。


Calibri



DataContext属性
如果没有使用Source和RelativeSource属性指定源,WPF就从当前元素开始在元素树中向上查找,检查每个元素的DataContect属性,并使用第一个非空的DataContextt属性。
在某些情况下,会将大量元素绑定到同一个对象。



当在绑定表达式中省略信息源时,WPF会检查元素的DataContext属性。如果属性值为null。WPF会继续向上在元素树中查找第一个不为null的数据上下文,找到并绑定。
注意:如果使用Source属性创建明确标识源的绑定,元素就会使用源而不会使用可能得到的数据上下文。

你可能感兴趣的:(绑定到非元素对象)