2013-11-09 3 views
2

Я почесываю голову, чтобы понять свойство зависимости.Зависимость - уровень уровня или уровня объекта

Запросы, которые у меня есть, следующие:

Поскольку свойство Dependency объявляется как статическое, свойство static class class level, создается только один экземпляр, и все объекты будут обмениваться одним и тем же объектом.

У меня есть пользовательский элемент управления, и я добавил свойство зависимостей IsHighlighted для этого пользовательского элемента управления. Это свойство зависимостей привязывается к некоторому свойству модели представления, и я зарегистрировал обратный вызов для изменений значения свойства зависимостей. Итак, как только кто-то изменит свойство модели представления, будет вызван обратный вызов свойств зависимостей, и он запустит анимацию, если значение истинно, так как оно является логическим значением.

Теперь я создал 5 объектов, и когда я установил свойство viewmodel для object1 в true, тогда анимация запускается для последнего узла object5, а не для объекта1. свойство модели просмотра не статично.

Я запутался в зависимости от свойства зависимостей для каждого объекта, или он будет единым для всего объекта.

В случае, если он является единым для всех объектов, то каким образом можно отслеживать изменения в пользовательском элементе управления, для которого мне нужно запустить симуляцию, потому что для обычного свойства CLR в пользовательском управлении не будет вызываться обработчик изменений ,

Основная информация: Свойства зависимостей создаются на уровне класса или уровне объекта. , если он создан на уровне класса, так как он объявлен как статический, то каким образом можно создать свойство, которое находится на уровне объекта (нестатическое), но оно не будет иметь никакого обратного вызова изменения значения для обычной проформы CLR. Итак, как это сделать.

+0

Возможно, этот ответ помогает вам понять это ... http: //stackoverflow.com/questions/19441453/why-dependency-properties-in-wpf-has-to-be-static/19441693#19441693 – Nitin

ответ

0

Когда вы посмотрите, как вы определили свойство зависимостей, вы скоро заметите, что это не обычное статическое свойство, и что его больше описывают свойство, задавая метаданные вместо того, чтобы присваивать чистое значение, как вы делали бы с простым обычное статическое свойство. Эти метаданные используются внутри DependencyObjects (каждый элемент управления в wpf наследует от DependencyObject даже UserControls).

Что каждый объект DependencyObject делает с этими метаданными, это управлять своим собственным значением для свойства зависимостей.

Так как объект5 только изменил значение, а не каждый объект.

Надеюсь, что pic теперь немного понятнее.

Кстати, я также ссылаюсь на ссылку, которую дал вам пользователь nit.

Why dependency properties in WPF has to be Static

проверяют это.

Смежные вопросы