当前位置:  开发笔记 > 开发工具 > 正文

自定义DependencyObject继承树

如何解决《自定义DependencyObject继承树》经验,为你挑选了1个好方法。

我竭力要找到所使用的财产继承树(或传承语境)足够的信息DependencyObjectDependencyProperty.

我想使用DependencyProperty典型WPF页面之外的值继承功能,这样对象A就是逻辑父对象B,因此分配给对象A上的属性的值将自动传播到对象B,除非它已在本地set(有点像FlowDirectionWPF中的属性).

如果对象A和对象B是从DependencyObject,并且不是a的子节点UIElement (换句话说,对象A是它自己的),那么如何建立逻辑树以便DependencyProperty理解B是A的子节点?

该 Hillberg可冻结计谋以及技巧的约什-史密斯的袋子不完全是我要找的.我希望从现有的元素树检索属性...我要创造我自己的,非可视元素树...即有超过的传承上下文控制.

有谁知道这个知识藏在哪里?



1> Mark..:

经过大量的研究和混淆源代码DependencyObject,这里是简短的回答:

InheritenceContext(其揭示了一个实例的逻辑父属性)为(等的有用实施90% DependencyObject)标记为内部的,从而从所有代码保持隐藏WindowsBase.dll中的外

可以使用反射来设置_contextParent字段,以及调用这些隐藏的方法来设置InheritenceContext,但在一天结束时它不是一个干净的解决方案.

在搜索DependencyObject源代码之后,我必须说我没有留下深刻的印象.DependencyObject可以而且应该是一个非常干净,无处不在,可重复使用的课程.相反,它在结构和行为上与它的继承者绑定,甚至包含特定的常量,字段,方法和解决方法,以帮助Freezable与其他子类共存,这不仅偏离了良好的OO设计,而且在WPF框架之外,它还使一个完美无缺的类完全无法使用.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有