内容简介:x:Reference 是 XAML 2009 中引入的功能,也算是比较早的功能了;ElementName 是 XAML 一开始出现便开始有的功能。二者在使用时在感觉上是比较相似的,但多数情况下都更有优势。本文将解释 x:Reference。典型的使用
x:Reference 是 XAML 2009 中引入的功能,也算是比较早的功能了;ElementName 是 XAML 一开始出现便开始有的功能。二者在使用时在感觉上是比较相似的,但多数情况下都更有优势。
本文将解释 x:Reference。
典型的使用 x:Reference
的例子是:
<object property="{x:Reference instancexName}" .../>
其中, instancexName
是另一个用 x:Name
指定名称的元素。
x:Reference
前面带了一个 x
命名空间前缀,所以可想而知这是与 x:Name
类似的 XAML 编译相关的标记。
在微软官方文档中描述为:
In WPF and XAML 2006, element references are addressed by the framework-level feature of ElementName binding. For most WPF applications and scenarios, ElementName binding should still be used. Exceptions to this general guidance might include cases where there are data context or other scoping considerations that make data binding impractical and where markup compilation is not involved.
用中文来描述就是说:以前在 XAML 2006 的时候,使用 ElementName 在绑定中获得对应到元素的绑定源,而这能适用于大多数情况。不过,如果绑定上下文中拥有不同的命名边界,那么这时使用 ElementName 可能无法找到绑定源。这时可以使用 x:Reference 替代。
你可以阅读 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! - walterlv 了解 x:Reference 替代 ElementName 解决绑定中命名边界的问题。
另外, ElementName
是在运行时通过查找可视化树或逻辑树来确定名称边界(NameScope)的,所以一定程度上性能也不那么好。
参考资料
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。