2010-07-31 64 views

回答

0

如果”重新感兴趣的话,你可以打开Reflector并查看一些与依赖项属性和框架中绑定系统相关的代码。有很多棘手的问题正在进行,以便对属性路径进行强健的高性能解析并将更改传播到依赖项属性。拥有标准的基础架构还允许管理更复杂的用例,例如更新来自多个源的依赖属性并解决优先级问题。例如,当动画的默认设置是由样式设置的属性时,会频繁出现。

依赖属性的另一个好处是它们在内部封装了很多行为(如通知,验证和强制),这意味着如果您看到依赖属性,那么您肯定会支持某些行为。这与INotifyPropertyChanged相反,类实现者可能或可能不支持所公布的接口。这意味着对于班级开发人员来说工作会更少

0

在DependencyProperty中的谷歌简单搜索产生一些结果,你可能会发现相关。例如:http://blog.hackedbrain.com/articles/UnderstandingDependencyObjectAndDependencyProperty.aspx

而我想其中一个原因是上下文。绑定内置于WPF的基础结构中,但C#类属性不属于此类。为了让WPF基础结构找到可绑定属性,您必须在代码中声明它们。此外,如果您声明属性,则会为WPF基础架构提供重要的元数据。

虽然我不同意,这将是更容易,如果这是可能的绑定到正规的属性,但是这是certanly的不小的细节打扰您宝贵的大脑的情况下...

+0

其实我google了很多,但没有发现任何令人信服的东西。问题是我们可以使用OneWayToSource并使用像目标一样的普通属性行为。所以看起来像只有普通的属性绑定是不允许的。规则应该至少是目标或源应该是依赖属性。如果是这种情况,那么“目标财产应该是财产”的说法并不能很好地保持。 – thewpfguy 2010-08-01 04:53:05