通过


Binding 类

定义

提供对绑定定义的高级访问,该定义连接绑定目标对象(通常为 WPF 元素)的属性以及任何数据源(例如数据库、XML 文件或任何包含数据的对象)。

public ref class Binding : System::Windows::Data::BindingBase
public class Binding : System.Windows.Data.BindingBase
type Binding = class
    inherit BindingBase
Public Class Binding
Inherits BindingBase
继承

注解

Windows Presentation Foundation (WPF) 数据绑定为应用程序提供一种简单且一致的方法来呈现和交互数据。 通过数据绑定,可以同步两个不同对象的属性的值。

若要建立绑定,请使用 Binding 类或继承 BindingBase的其他类之一。 无论绑定的对象是什么以及数据源的性质,每个绑定都遵循下图所示的模型。

基本数据绑定关系图基本

该图演示了以下基本 WPF 数据绑定概念。

  • 每个绑定通常包含以下四个组件:绑定目标对象、目标属性、绑定源以及 Path 要使用的绑定源中的值。 例如,如果要将 a TextBox 的内容绑定到 Employee 对象的 Name 属性,则目标对象是 TextBox,目标属性是 Text 属性,要使用的值为 Name,而源对象是 Employee 对象。

  • 目标属性必须是依赖属性。 这也意味着不能绑定字段。 对象的大多数属性都是依赖属性 UIElement 和大多数依赖属性,但只读属性除外,默认情况下支持数据绑定。 (只有 DependencyObject 类型可以定义依赖项属性和所有 UIElement 对象派生自 DependencyObject.)

  • 虽然图中未指定,但应指出绑定源对象不限于自定义 CLR 对象。 WPF 数据绑定支持 CLR 对象和 XML 形式的数据。 为了提供一些示例,绑定源可以是、 UIElement任何列表对象、与 ADO.NET 数据或 Web 服务关联的 CLR 对象,或包含 XML 数据的 XmlNode。

使用 Mode 属性指定数据流的方向。 若要检测单向或双向绑定中的源更改,源必须实现适当的属性更改通知机制,例如 INotifyPropertyChanged。 有关示例,请参阅 “如何:实现属性更改通知”。 该 UpdateSourceTrigger 属性指定源更新的计时。 有关详细信息,请参阅 数据绑定概述中的“基本数据绑定概念”。

XAML 属性用法

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

XAML 值

声明 用逗号(,)分隔的零个或多个属性赋值子句。 有关详细信息,请参阅 绑定标记扩展绑定声明概述

构造函数

名称 说明
Binding()

初始化 Binding 类的新实例。

Binding(String)

使用初始路径初始化类的新实例 Binding

字段

名称 说明
DoNothing

用作返回的值,指示绑定引擎不执行任何操作。

IndexerName

用于PropertyNamePropertyChangedEventArgs指示索引器属性已更改。

SourceUpdatedEvent

标识 SourceUpdated 附加事件。

TargetUpdatedEvent

标识 TargetUpdated 附加事件。

XmlNamespaceManagerProperty

标识 XmlNamespaceManager 附加属性。

属性

名称 说明
AsyncState

获取或设置传递给异步数据调度程序不透明的数据。

BindingGroupName

获取或设置此绑定所属的名称 BindingGroup

(继承自 BindingBase)
BindsDirectlyToSource

获取或设置一个值,该值指示是计算 Path 相对于数据项还是对象 DataSourceProvider

Converter

获取或设置要使用的转换器。

ConverterCulture

获取或设置要在其中计算转换器的区域性。

ConverterParameter

获取或设置要传递给 .. 的参数 Converter

Delay

获取或设置在目标值更改后更新绑定源之前要等待的时间(以毫秒为单位)。

(继承自 BindingBase)
ElementName

获取或设置要用作绑定源对象的元素的名称。

FallbackValue

获取或设置绑定无法返回值时要使用的值。

(继承自 BindingBase)
IsAsync

获取或设置一个值,该值指示是否 Binding 应异步获取和设置值。

Mode

获取或设置一个值,该值指示绑定中数据流的方向。

NotifyOnSourceUpdated

获取或设置一个值,该值指示在将值从绑定目标传输到绑定源时是否引发 SourceUpdated 事件。

NotifyOnTargetUpdated

获取或设置一个值,该值指示在将值从绑定源传输到绑定目标时是否引发 TargetUpdated 事件。

NotifyOnValidationError

获取或设置一个值,该值指示是否在绑定对象上引发 Error 附加事件。

Path

获取或设置绑定源属性的路径。

RelativeSource

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

Source

获取或设置要用作绑定源的对象。

StringFormat

获取或设置一个字符串,该值指定在绑定将绑定值显示为字符串时如何设置绑定的格式。

(继承自 BindingBase)
TargetNullValue

获取或设置源值时在目标中使用的值 null

(继承自 BindingBase)
UpdateSourceExceptionFilter

获取或设置一个处理程序,可用于提供自定义逻辑来处理绑定引擎在更新绑定源值期间遇到的异常。 仅当已关联 ExceptionValidationRule 到绑定时,这才适用。

UpdateSourceTrigger

获取或设置一个值,该值确定绑定源更新的计时。

ValidatesOnDataErrors

获取或设置一个值,该值指示是否包含 .DataErrorValidationRule

ValidatesOnExceptions

获取或设置一个值,该值指示是否包含 .ExceptionValidationRule

ValidatesOnNotifyDataErrors

获取或设置一个值,该值指示是否包含 .NotifyDataErrorValidationRule

ValidationRules

获取检查用户输入有效性的规则集合。

XPath

获取或设置一个 XPath 查询,该查询返回要使用的 XML 绑定源上的值。

附加属性

名称 说明
XmlNamespaceManager

获取或设置 XmlNamespaceManager 用于在 XML 绑定中执行命名空间感知 XPath 查询。

方法

名称 说明
AddSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

为附加事件添加处理程序 SourceUpdated

AddTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

为附加事件添加处理程序 TargetUpdated

Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
GetXmlNamespaceManager(DependencyObject)

返回附加到指定对象的绑定使用的 XML 命名空间管理器对象。

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ProvideValue(IServiceProvider)

返回应在应用此绑定和扩展的属性上设置的对象。

(继承自 BindingBase)
RemoveSourceUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

删除附加事件的处理程序 SourceUpdated

RemoveTargetUpdatedHandler(DependencyObject, EventHandler<DataTransferEventArgs>)

删除附加事件的处理程序 TargetUpdated

SetXmlNamespaceManager(DependencyObject, XmlNamespaceManager)

设置附加到提供的元素的绑定使用的命名空间管理器对象。

ShouldSerializeFallbackValue()

返回一个值,该值指示序列化进程是否应在此类实例上序列化属性的有效值 FallbackValue

(继承自 BindingBase)
ShouldSerializePath()

指示是否 Path 应保留该属性。

ShouldSerializeSource()

指示是否 Source 应保留该属性。

ShouldSerializeTargetNullValue()

返回一个值,该值指示是否 TargetNullValue 应序列化属性。

(继承自 BindingBase)
ShouldSerializeValidationRules()

指示是否 ValidationRules 应保留该属性。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

附加活动

名称 说明
SourceUpdated

当将值从绑定目标传输到绑定源时发生,但仅适用于值设置为trueNotifyOnSourceUpdated绑定。

TargetUpdated

当值从绑定源传输到绑定目标时发生,但仅适用于值设置为trueNotifyOnTargetUpdated绑定。

适用于

另请参阅