控件树,在树上的每一个分支,包括叶子(比如:grid,stackpanel,lable,TextBlock)等,都有DataContext属性,并且该值可以实现从“外层”向内层传递
<Grid DataContext=对象A/>
<Lable [DataContext = 对象A] Content="{binding path=Name}"/>
</Grid>
我们要将“对象A”中的“Name属性”绑定到“Lable控件”的“Content”属性上,若对象A中“无”Name属性,则必然会报错!
对象A 是“单对象”,还是集合对象,这个并不重要,重要的是它是否有名称为“A”的属性 ;
DataContext = 对象(单对象/集合对象):该“对象” 即 数据对象,在MVVM中就是ViewModel