Binding.RelativeSource 属性

Binding.RelativeSource 属性说明:

通过指定绑定源相对于绑定目标的位置,获取或设置绑定源。

属性通常用于将对象的某个属性绑定到该对象的另一个属性,或用于在样式或模板中定义绑定。

默认情况下,如果已设置了 DataContext 属性,则绑定会继承该属性所指定的数据上下文。但是,RelativeSource 属性是一种可以显式设置 Binding 的源和重写继承的数据上下文的方式。有关更多信息,请参见如何:指定绑定源

此外,使用 Binding.ElementName  Binding.Source 属性还可以显式设置绑定源。但是,对于每个绑定,只能设置 ElementNameSource  RelativeSource 这三个属性中的一个,否则可能发生冲突。如果存在绑定源冲突,则此属性将引发异常。

RelativeSource的两个重要属性:

       AncestorLevel属性指的是以Binding目标控件为起点的层级偏移量,AncestorType属性告诉Binding寻找哪个类型的对象作为自己的源,不是这个类型的对象会被跳过。如:下面的XAML示例代码:

    <TextBox   Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType={x:Type Grid}}, Path=Name}"  />

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxfsf.html