如何:指定绑定源

更新:2007 年 11 月

在数据绑定中,绑定源对象指的是您从其获取数据的对象。本主题描述了指定绑定源的几种不同方法。

示例

如果您要将几个属性绑定到一个通用源,则您需要使用 DataContext 属性,它能让您方便地建立一个范围,所有数据绑定的属性都在该范围中继承通用源。

在下面的示例中,数据上下文建立在应用程序的根元素上。这允许所有子元素继承该数据上下文。绑定的数据来自自定义数据类 NetIncome,可通过映射直接引用该类,已为该类分配了 incomeDataSource 资源键。

有关完整的代码示例,请参见控制数据流方向和计时的示例

<Grid
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.DirectionalBinding"
  xmlns:c="clr-namespace:SDKSample"
  Name="Page1"
>
  <Grid.Resources>
    <c:NetIncome x:Key="incomeDataSource"/>
    <Style TargetType="{x:Type TextBlock}">
      <Setter Property="Padding" Value="8"/>
    </Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="Margin" Value="0,6,0,0"/>
    </Style>
  </Grid.Resources>
  <Grid.DataContext>
    <Binding Source="{StaticResource incomeDataSource}"/>
  </Grid.DataContext>


...


</Grid>
说明:

以上示例实例化标记中的对象,并将其用作资源。如果您希望绑定到已在代码中实例化的对象,则需要通过编程方式设置 DataContext 属性。有关示例,请参见如何:使数据可用于 XAML 中的绑定

另外,如果您希望在各个绑定上显式指定源,则可以选择以下属性。这些属性优先于继承的数据上下文。

属性

说明

Source

可以使用此属性来将源设置为对象的实例。如果您不需要建立范围(在此范围内若干属性继承同一数据上下文)的功能,您可以使用 Source 属性,而不是 DataContext 属性。有关更多信息,请参见 Source

RelativeSource

如果您希望指定相对于绑定目标位置的源,这是有用的。当您想要将元素的一个属性绑定到同一元素的另一个属性时,或者如果您正在样式或模板中定义绑定,您可能需要使用此属性。有关更多信息,请参见 RelativeSource

ElementName

您指定一个表示您希望绑定到的元素的字符串。当您希望绑定到应用程序中的另一个元素的属性时,这是有用的。例如,如果您希望使用 Slider 控制应用程序中另一个控件的高度,或者如果您希望将控件的 Content 绑定到 ListBox 控件的 SelectedValue 属性。有关更多信息,请参见 ElementName

请参见

任务

控制数据流方向和计时的示例

概念

属性值继承

数据绑定概述

绑定声明概述

参考

FrameworkElement.DataContext

FrameworkContentElement.DataContext

其他资源

数据绑定示例

数据绑定帮助主题