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

请参见

概念

样式设置和模板化

XAML 概述

标记扩展和 XAML

数据绑定概述

绑定声明概述

参考

Binding

x:Type 标记扩展