Binding.ElementName 属性

定义

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

public:
 property Platform::String ^ ElementName { Platform::String ^ get(); void set(Platform::String ^ value); };
winrt::hstring ElementName();

void ElementName(winrt::hstring value);
public string ElementName { get; set; }
var string = binding.elementName;
binding.elementName = string;
Public Property ElementName As String
<Binding ElementName="nameString"/>

属性值

String

Platform::String

winrt::hstring

要用作绑定源的元素的 Name属性或 x:Name 属性 的值。 默认值为空字符串。

示例

下面的代码示例演示如何在 TextBoxSlider 控件之间建立双向绑定。 有关完整的代码列表,请参阅 XAML 数据绑定示例中的方案 1。

<Slider x:Name="slider1" Minimum="1" Maximum="100"/>
<TextBox Text="{Binding ElementName=slider1, Path=Value, Mode=TwoWay}"/>

注解

设置此属性时,指定的值必须引用以下位置之一中的元素:

  • 当前 XAML 名称范围。
  • 如果绑定目标位于数据模板或控件模板中,则为模板化父级的 XAML 名称范围。 由于此限制,无法使用 ElementName 属性绑定到不是使用 XAML 创建的元素。 若要绑定到以编程方式创建的元素,请改用 Source 属性。 SourceRelativeSource 和 ElementName 在绑定中互斥。 如果已设置其中一个属性,则通过 XAML 或通过代码) 在绑定 (中设置其他两个属性中的任何一个都将导致异常。

使用 ElementName 值的绑定几乎总是包含一个简单的 Path,该 路径 为所引用对象上存在的属性命名。 通常,来自命名元素的源属性和目标上的目标属性具有相同的名称并使用相同的值类型,这种情况经常出现在控件模板定义中,该定义复合控件部件,但显示部件中的属性。 如果源属性和目标属性使用不同的类型,请指定一个 Converter 值,该值可以解析类型差异并为目标返回适当的值。

有关 XAML 名称范围以及它们如何影响绑定和对从 XAML 创建的对象的其他编程访问的详细信息,请参阅 XAML 名称范围

ElementName 的值在技术上可以是任何字符串,但 Namex:Name 属性 的值强制在 XamlName 语法中有效,因此通常也会受 ElementName 值的语法约束。 有关元素名称的有效内容的详细信息,请参阅 x:Name 属性 引用中的“XamlName 语法”部分。

在绑定已附加到目标元素和目标属性之后,无法设置 Binding 对象的属性值。 如果尝试此操作,将收到运行时异常。

适用于

另请参阅