【发布时间】:2013-11-09 12:42:21
【问题描述】:
为了理解依赖属性,我摸不着头脑。
我的疑问如下;
由于依赖属性被声明为静态,静态意味着类级属性,只会创建单个实例,所有对象将共享同一个对象。
我有一个用户控件,并且我已将依赖属性 IsHighlighted 添加到该用户控件。 这个依赖属性绑定到一些视图模型属性,我已经注册了依赖属性值更改的回调。因此,一旦有人更改了视图模型属性,就会调用依赖属性回调,如果 value 为 true,它会启动一个动画,因为它是一个布尔值。
现在,我创建了 5 个对象视图,当我将 object1 的 viewmodel 属性设置为 true 时,动画将针对最后一个节点 object5 而不是针对 object1 运行。视图模型的属性是非静态的。
我很困惑会为每个对象创建依赖属性,或者它对所有对象都是单一的。
如果所有对象都是单一的,那么跟踪我需要在其上运行模拟的用户控件属性中的更改的方法是什么,因为对于用户控件中的普通 CLR 属性,不会调用更改处理程序。
总结: 依赖属性是在类级别或对象级别创建的。 如果它是在类级别创建的,因为它被声明为静态,那么创建对象级别(非静态)的属性的方法是什么,但对于正常的 CLR 属性,它不会有任何值更改回调。那么该怎么做呢。
【问题讨论】:
-
也许这个答案可以帮助你理解它...stackoverflow.com/questions/19441453/…
标签: c# wpf wpf-controls dependency-properties