Eli*_*eth 8 wpf datacontext inheritance frameworkelement
你好WPF专业人士至少我希望你们有些人读到这个!
DataContext是FrameworkElement(所有WPF控件的基类)上的属性,并作为DependencyProperty实现.这意味着逻辑树中的所有后代元素共享相同的DataContext.
所以ContentControl应该用它的后代元素做对吗?
我的情况并非如此,我想知道这种不当行为的原因是什么?!
你更了解它,请阅读这个线程(不要在这里复制一切)麻烦开始...:
WPF:找不到触发器目标'cc'.目标必须出现在任何Setters,Triggers之前
并说,它在很短的话:在ContentControl中内我的DataTemplates确实有死的DataContext,这意味着没有什么绑定到它,究竟是不可能的...
ContentControl中的每个元素都在DataContext属性中设置了NOTHING ???
Tho*_*que 21
DataContext是FrameworkElement(所有WPF控件的基类)上的属性,并作为DependencyProperty实现.这意味着逻辑树中的所有后代元素共享相同的DataContext.
事实上,它是一个依赖属性并不意味着继承...这是真的DataContext,但仅仅因为依赖属性FrameworkPropertyMetadataOptions.Inherits在其元数据中有标志.
所以ContentControl应该用它的后代元素做对吗?
ContentControl有点特别:DataContext它的后代(从它构建的可视树DataTemplate)实际上是它Content的ContentControl.因此,如果您ContentControl没有内容,则DataContext内部为空.
小智 13
这对我有用:
<ContentControl ContentTemplate="{StaticResource NotesTemplate}"
Content="{Binding}"
DataContext="{Binding HeightField}"/>
Run Code Online (Sandbox Code Playgroud)
没有Content="{Binding}",DataContext为NULL