绑定标记扩展

更新:2007 年 11 月

使属性值遵从数据绑定值,从而在运行时创建一个中间表达式对象,并解释应用于元素的数据上下文。

XAML 属性用法

<object property="{Binding}" .../>

- 或 -

<object property="{Binding  bindingPropertyName1=value,
  bindingPropertyName2=value,
  bindingPropertyNameN=value}" ...
/>

XAML 对象元素用法

<object>
  <object.property>
    <Binding/>
  </object.property>
</object>

- 或 -

<object>
  <object.property>
    <Binding      bindingPropertyName1="value"
      bindingPropertyName2="value"
      bindingPropertyNameN="value"
    />
  </object.property>
</object>

下面列出的任何属性 (property) 在示例属性 (attribute) 语法中设置为“属性 (property)=值”对,而按照对象元素语法中的定义,则可以设置为 Binding 元素的属性 (attribute)。

XAML 值

bindingPropertyName#

要设置的 Binding 属性的 Name。并非所有 Binding 属性都可以使用绑定扩展来设置,某些属性只能使用其他嵌套标记扩展进行设置。请参见“可以使用绑定扩展设置的绑定属性”一节。

value

属性的设置值。属性值的处理最终特定于正在设置的 bindingPropertyName 的类型和逻辑。

可以使用绑定扩展设置的绑定属性

本主题显示的语法使用泛型 bindingPropertyName=value 的类似形式,因为 BindingBaseBinding 的许多读/写属性可以通过 Binding 标记扩展语法来设置。可以按任意顺序对上述属性进行设置。基本上可以使用由逗号分隔的“属性=值”对,在下面的列表中设置零个或更多属性。

上述某些属性 (property) 值需要的对象类型不支持本机类型转换,因此要求在 XAML 中将标记扩展用法进一步设置为属性 (attribute) 值。请查看每个属性 (property) 的参考中的“XAML 属性用法”一节,以确定正确的属性 (attribute) 语法。

以下是无法使用 Binding 标记扩展设置的 Binding 的属性。

备注

此处给定的 bindingPropertyName 占位符对应于 Binding 类的某些已声明的可设置属性 (property) 的名称,值字符串等效于这些属性 (property) 值在声明为 XAML 元素的 Binding 内设置为 XAML 属性 (attribute) 的方式。

此处不介绍数据绑定这一概念;请参见数据绑定概述了解相关概念,参见绑定声明概述了解备选语法的更多详细信息。备选语法介绍中包括如何通过大量可能的语法(例如 XAML 中的 Binding 对象元素的属性 (attribute) 的属性 (property)、Binding 的属性 (property) 元素语法或者使用 SetBindingBinding 构造函数按步骤进行的绑定创建)创建等效绑定。

重要说明:

在依赖项属性 (property) 的优先级方面,绑定表达式等于本地设置的值。如果为先前已具有 Binding 表达式的属性设置了本地值,则会完全移除 Binding。有关详细信息,请参见依赖项属性值优先级

说明:

MultiBindingPriorityBinding 不支持 XAML 扩展语法(尽管会共享同一 BindingBase 类,该类实际上为 Binding 实现 XAML 行为)。

Binding 是标记扩展。当要求转义属性 (attribute) 值应为非文本值或非处理程序名称时,通常会实现标记扩展,相对于只在某些类型或属性 (property) 上放置类型转换器而言,此要求更具有全局性。XAML 中的所有标记扩展在其属性语法中使用 { 和 } 字符,这是 XAML 处理器确认标记扩展必须处理属性时所遵守的约定。有关更多信息,请参见标记扩展和 XAML。Binding 是非常规标记扩展,因此实现扩展功能的 Binding 类还会实现其他一些方法和属性。其他这些成员不是标记扩展功能所必需的。这些成员旨在令 Binding 成为功能更多且独立的类,除用作 XAML 标记扩展外,还可以解决许多数据绑定方案。

请参见

概念

数据绑定概述

绑定声明概述

XAML 概述

标记扩展和 XAML

参考

Binding