Binding.ElementName 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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"/>
属性值
要用作绑定源的元素的 Name属性或 x:Name 属性 的值。 默认值为空字符串。
示例
下面的代码示例演示如何在 TextBox 和 Slider 控件之间建立双向绑定。 有关完整的代码列表,请参阅 XAML 数据绑定示例中的方案 1。
<Slider x:Name="slider1" Minimum="1" Maximum="100"/>
<TextBox Text="{Binding ElementName=slider1, Path=Value, Mode=TwoWay}"/>
注解
设置此属性时,指定的值必须引用以下位置之一中的元素:
- 当前 XAML 名称范围。
- 如果绑定目标位于数据模板或控件模板中,则为模板化父级的 XAML 名称范围。 由于此限制,无法使用 ElementName 属性绑定到不是使用 XAML 创建的元素。 若要绑定到以编程方式创建的元素,请改用 Source 属性。 Source、 RelativeSource 和 ElementName 在绑定中互斥。 如果已设置其中一个属性,则通过 XAML 或通过代码) 在绑定 (中设置其他两个属性中的任何一个都将导致异常。
使用 ElementName 值的绑定几乎总是包含一个简单的 Path,该 路径 为所引用对象上存在的属性命名。 通常,来自命名元素的源属性和目标上的目标属性具有相同的名称并使用相同的值类型,这种情况经常出现在控件模板定义中,该定义复合控件部件,但显示部件中的属性。 如果源属性和目标属性使用不同的类型,请指定一个 Converter 值,该值可以解析类型差异并为目标返回适当的值。
有关 XAML 名称范围以及它们如何影响绑定和对从 XAML 创建的对象的其他编程访问的详细信息,请参阅 XAML 名称范围。
ElementName 的值在技术上可以是任何字符串,但 Name 和 x:Name 属性 的值强制在 XamlName 语法中有效,因此通常也会受 ElementName 值的语法约束。 有关元素名称的有效内容的详细信息,请参阅 x:Name 属性 引用中的“XamlName 语法”部分。
在绑定已附加到目标元素和目标属性之后,无法设置 Binding 对象的属性值。 如果尝试此操作,将收到运行时异常。