I'm trying to find some differences between these approaches. Is there any situation where behaviors are used and the same functionality could not be done with attached properties?
4 Answers
No. Behaviors are basically just a much nicer abstraction on top of attached properties.
By using Behavior<T>
, you gain access to the AssociatedObject
directly, as well as the ability to attach and detach the behavior, easily, at runtime.
You could do this with attached properties, but it would require adding a lot of extra plumbing.

- 554,122
- 78
- 1,158
- 1,373
-
2However, it becomes difficult to add them with a style. – Stephen Drew Jul 08 '12 at 22:38
-
2Actually there are a few things you can't do with attached properties... For example, it would be possible to add several instances of the same behavior, but you can only set an attached property once. OTOH, attached properties have a shorter syntax, and can be used in styles, which is difficult with behaviors. – Thomas Levesque Jul 06 '13 at 02:01
-
1@ThomasLevesque you can also define an Attached Property that adds Behaviors to a given UI element, and set that property in a Style.. haha =) – Federico Berasategui Aug 30 '13 at 21:27
I tend to use Behaviors to add functionality which makes visible changes. Whereas I use attached properties to add additional information to an object which is subsequently used by other objects.
E.g. Grid.Row makes a good attached property, as it's used by the Grid and not the target. On the other hand, AutoCorrect would make a good behaviour, as this will make visible changes on the object.

- 19,016
- 3
- 62
- 85
Behaviors are based on attached properties. That means if you can't find specific behavior - you write your own, either based on behaviors framework provided by Blend or by creating your own AP...
I always thought that behaviors are great evidence of attached properties power. Just incredible what you can get with them.

- 9,795
- 7
- 55
- 68

- 15,658
- 2
- 47
- 56
This is not the answer. But the best explanation I can find on this topic https://web.archive.org/web/20180208143035/http://briannoyesblog.azurewebsites.net/2012/12/20/attached-behaviors-vs-attached-properties-vs-blend-behaviors/
Brian Noyes in his articles clearly describes the differences between each of the concepts.

- 782
- 2
- 9
- 30

- 99
- 2
-
-
1Here's the working link http://briannoyesblog.azurewebsites.net/2012/12/20/attached-behaviors-vs-attached-properties-vs-blend-behaviors/ – lukeguy Dec 08 '15 at 08:16
-
I wonder why he deleted it. https://web.archive.org/web/20180208143035/http://briannoyesblog.azurewebsites.net/2012/12/20/attached-behaviors-vs-attached-properties-vs-blend-behaviors/ – Kirk Kuykendall Feb 24 '19 at 23:31