Подтвердить что ты не робот

Interactivity.Behavior <T> против прикрепленных свойств

Я пытаюсь найти некоторые различия между этими подходами. Есть ли какая-либо ситуация, когда используются поведения, и не могут быть реализованы те же функции с прикрепленными свойствами?

4b9b3361

Ответ 1

Нет. Поведение в основном является гораздо более хорошей абстракцией поверх прикрепленных свойств.

Используя Behavior<T>, вы напрямую получаете доступ к AssociatedObject, а также возможность прикреплять и отключать поведение, легко, во время выполнения.

Вы можете сделать это с помощью прикрепленных свойств, но для этого потребуется добавить много дополнительной сантехники.

Ответ 2

Я стараюсь использовать Behaviors для добавления функциональности, которая делает видимые изменения. В то время как я использую прикрепленные свойства для добавления дополнительной информации к объекту, который впоследствии используется другими объектами.

например. Grid.Row делает хорошее прикрепленное свойство, так как оно используется сеткой, а не целью. С другой стороны, AutoCorrect будет делать хорошее поведение, так как это сделает видимые изменения на объекте.

Ответ 3

Пословицы основаны на прикрепленных свойствах. Это означает, что если вы не можете найти определенное поведение - вы пишете свое собственное, либо на основе структуры behavoirs, предоставляемой Blend, либо создавая собственную AP...

Я всегда, хотя это поведение является большим доказательством силы прикрепленных свойств. Просто невероятно, что с ними можно получить.