我们进行Bingding时,如果明确知道数据源的Name,就能用Source或者ElementName
进行绑定,但是有时候我们需要绑定的数据源可能没有明确的Name,此时我们就需要利
用Bingding的RelativeSource进行绑定,这种办法的意思是指当前元素和绑定源的位置关
系。
属性:
AncestorLevel 以 FindAncestor 模式获取或设置要查找的上级级别。 使用 1 指示最靠
近绑定目标元素的项
AncestorType 获取或设置要查找的上级节点的类型
Mode 获取或设置 RelativeSourceMode 值,该值描述相对于绑定目标的位置
的绑定源的位置
PreviousData 获取一个静态值,该值用于返回为 RelativeSource 模式构造
的 PreviousData
Self 获取一个静态值,该值用于返回为 RelativeSource 模式构造的 Self
TemplatedParent 获取一个静态值,该值用于返回为 RelativeSource 模式构造
的 TemplatedParent
详细介绍下AncestorLevel,它指的是以Bingding目标控件为起点的层级偏移量,S1的偏
移量是1,G2的偏移量是2,G1是偏移量3,AncestorType指的是要找的目标对象的类
型。值得注意的是AncestorLevel必须参考AncestorType使用,设置了AncestorType={x:Type Grid},则Bingding在寻找时会忽略非Grid的控件,此时G2的偏移
量是1,G1的偏移量是2,StackPanel被忽略。
总结:
从运用性上介绍了RelativeSource三种使用方法,目前就碰到三种