Я пытаюсь найти некоторые различия между этими подходами. Есть ли какая-либо ситуация, где поведения используются, и та же функциональность не могла быть сделана с приложенными свойствами?
Нет. Поведение - это просто более приятная абстракция поверх прикрепленных свойств.
Используя Behavior
, вы получаете доступ напрямую к AssociatedObject
, а также возможность легко присоединять и отсоединять поведение во время выполнения.
Вы можете сделать это с прикрепленными объектами, но для этого потребуется добавить много дополнительной сантехники.
Поведение основано на вложенных свойствах. Это означает, что если вы не можете найти определенное поведение - вы пишете свое собственное, либо на основе фреймворка поведения, предоставляемого Blend, либо создавая свой собственный AP...
Я всегда считал, что поведение - это отличное доказательство силы вложенных свойств. Просто невероятно, что вы можете получить с их помощью.