Interactivity.Behavior <T> vs附加属性

Zim*_*Zim 21 wpf behavior

我试图找出这些方法之间的一些差异.是否存在使用行为并且无法使用附加属性执行相同功能的情况?

Ree*_*sey 39

在附加属性的基础上,行为基本上只是一个更好的抽象.

通过使用Behavior<T>,您可以AssociatedObject直接访问,以及在运行时轻松附加和分离行为的功能.

您可以使用附加属性执行此操作,但这需要添加大量额外的管道.

  • 然而,将它们添加到样式中变得很困难。 (2认同)
  • 实际上,有一些事情您无法使用附加属性执行...例如,可以添加相同行为的多个实例,但您只能设置附加属性一次。OTOH,附加属性的语法更短,并且可以在样式中使用,这对于行为来说很困难。 (2认同)

Luk*_*oid 7

我倾向于使用Behaviors来添加可以进行可见更改的功能.而我使用附加属性将其他信息添加到随后由其他对象使用的对象.

例如,Grid.Row是一个很好的附加属性,因为它是Grid使用的而不是目标.另一方面,自动更正会产生良好的行为,因为这将对对象进行可见的更改.