【发布时间】:2013-12-29 18:24:20
【问题描述】:
我在这里使用这个 WPF 绑定备忘单:
http://www.nbdtech.com/Free/WpfBinding.pdf
我注意到它指的是 {Binding} 和 {Binding Name} 之类的“当前数据上下文”。在我看到的示例中,根窗口的 DataContext 被设置为某个对象,并且树中几个级别的子控件能够绑定到它,而无需指定它所指的是哪个元素的数据上下文。所以我的问题是双重的:
- 什么是当前 DataContext,它是如何定义为“当前”的?
- 作为#1 的后续问题,当前数据上下文的“搜索顺序”(如果有的话)是什么?我的理解是每个 WPF 控件都可以有自己的数据上下文,所以:
- 它是否只是向上搜索父/子树,直到找到定义了 DataContext 的第一个父级?
- 如果它在该 DataContext 上没有找到指定的属性,它会跳过它并找到具有该属性的下一个数据上下文吗?
提前致谢。
【问题讨论】:
-
如果
DataContext没有明确设置,那么它等于它的父级DataContext。对父母也是如此。就是这样。 -
@Johnbot 那么这是否意味着这有助于沿着父/子树向上走直到找到一个,或者如果该子的 DataContext 未设置,则该子只能直接引用其父级?
-
它在树上行走。查看答案。