我想了解Silverlight依赖项属性系统的底层细节。DependencyObject的绑定上下文
我知道DependencyObject没有显式的DataContext属性,甚至没有父类的概念。
但是,派生自DependencyObject的Behavior类具有绑定使用它所附加的DataContext作为绑定本身的源。
我的问题是:我可以从DependencyObject派生一个类,并以某种方式确定在Source上使用哪个其他对象进行绑定?或者更清楚的是:如何实现像Behavior类一样的东西?
但还有一点值得注意:在将自定义DependencyObjectCollection附加到FrameworkElement并在其中插入DependencyObject的测试中,它确实(与ResourceDictionary行为不同)不是继承绑定的DataContext。 这项工作应该还是以另一种方式附加DataContext - 将DependencyObjects继承到现有的FrameworkElements? 或换句话说,正如我在原始问题中所问的:我可以重新实现Behavior类吗? – John
我不知道行为究竟如何,但是因为它们存在,所以可以做到。出于好奇,为什么要重新实施Behavior类?为什么不使用Microsoft提供的行为? – Denis
您的观点是,Behavior类是表达式混合库的一部分,而不是核心,对吧?至于为什么不使用行为:我只是把它们提出来让我的问题清楚,我的真正意图是简单地理解什么是可能的,哪些不是。 – John