我目前正在将我创建的一些附加行为迁移到Blend Behaviors,以便它们支持Expression Blend中的拖放.我注意到Blend行为的作者倾向于将行为属性定义为依赖属性.
我创建了一个行为,TiltBehaviour它公开了一个TiltFactordouble类型的公共依赖属性.在Expression Blend中我可以设置此属性的值,但是,添加"数据绑定..."的选项显示为灰色:

我还注意到Behaviors扩展DependencyObject,因此它们没有a DataContext,因此无法继承DataContext它们所附加的元素.这对我来说真是个弱点!
所以,底线是,如果我无法在Blend中设置绑定到我的行为依赖属性,并且它没有继承DataContext,为什么还要使用依赖属性呢?我可以使用CLR属性.