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 绑定源中要使用的值。 例如,如果要将 的内容 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 值

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

构造函数

Binding()

初始化 Binding 类的新实例。

Binding(String)

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

字段

DoNothing

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

IndexerName

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

SourceUpdatedEvent

标识 SourceUpdated 附加事件。

TargetUpdatedEvent

标识 TargetUpdated 附加事件。

XmlNamespaceManagerProperty

标识 XmlNamespaceManager 附加属性。

属性

AsyncState

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

BindingGroupName

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

(继承自 BindingBase)
BindsDirectlyToSource

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

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

获取或设置用于在 XML 绑定中执行可以识别命名空间的 XPath 查询的 XmlNamespaceManager

方法

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

当一个值从绑定目标传输到绑定源时发生,但仅限于其 NotifyOnSourceUpdated 值设置为 true 的绑定。

TargetUpdated

当一个值从绑定源传输到绑定目标时发生,但仅限于其 NotifyOnTargetUpdated 值设置为 true 的绑定。

适用于

另请参阅