RelativeSource MarkupExtension
更新:2007 年 11 月
指定要在 绑定标记扩展中使用,或者要在为使用 XAML 创建的 Binding 元素设置 RelativeSource 属性时使用的 RelativeSource 绑定源的属性。
XAML 属性用法
<Binding RelativeSource="{RelativeSource modeEnumValue}" .../>
XAML 属性用法(嵌套在 Binding 扩展内)
<object property="{Binding RelativeSource={RelativeSource modeEnumValue} ...}" .../>
XAML 对象元素用法
<Binding>
<Binding.RelativeSource>
<RelativeSource Mode="modeEnumValue"/>
</Binding.RelativeSource>
</Binding>
- or
<Binding>
<Binding.RelativeSource>
<RelativeSource
Mode="FindAncestor"
AncestorType="{x:Type typeName}"
AncestorLevel="intLevel"
/>
</Binding.RelativeSource>
</Binding>
XAML 值
modeEnumValue |
下列情形之一:
|
FindAncestor |
字符串标记 FindAncestor。使用此标记输入一个模式,供 RelativeSource 指定上级类型和可选的上级级别。它对应于将 Mode 属性设置为 FindAncestor 时创建的 RelativeSource。 |
typeName |
对于 FindAncestor 模式是必需的。类型的名称,用于填充 AncestorType 属性。 |
intLevel |
对于 FindAncestor 模式是可选的。上级级别(在逻辑树中向父级方向计算)。 |
备注
在上面显示的 FindAncestor 模式的对象元素语法中,第二个对象元素语法专门用于 FindAncestor 模式。FindAncestor 模式需要一个 AncestorType 值。必须使用对要查找的上级类型的 x:Type 标记扩展引用将 AncestorType 设置为一个属性。AncestorType 值在运行时处理绑定请求时使用。
对于 FindAncestor 模式,当元素树中可能存在多个该类型的上级时,可以使用可选的属性 AncestorLevel 帮助消除上级查找的歧义。
有关使用 FindAncestor 模式的详细信息,请参见 RelativeSource。
本文未从概念上介绍数据绑定;请参见数据绑定概述。
在 WPFXAML 处理器实现中,对此标记扩展的处理由 RelativeSource 类进行定义。
RelativeSource 是标记扩展。当要求转义属性 (attribute) 值应为非文本值或非处理程序名称时,通常会实现标记扩展,相对于只在某些类型或属性 (property) 上放置类型转换器而言,此要求更具有全局性。XAML 中的所有标记扩展在其属性语法中使用 { 和 } 字符,这是 XAML 处理器确认标记扩展必须处理属性时所遵守的约定。有关更多信息,请参见标记扩展和 XAML。