wpf – 混合行为 – 你能绑定到他们的属性吗?

wpf – 混合行为 – 你能绑定到他们的属性吗?,第1张

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

我创建了一个行为TiltBehavIoUr,它暴露了一个类型为double的公共依赖属性TiltFactor.在Expression Blend中我可以设置此属性的值,但是,添加“数据绑定…”的选项显示为灰色:

我还注意到Behaviors扩展了DependencyObject,因此它们没有DataContext,因此无法继承它们所附加元素的DataContext.这对我来说真是个弱点!

所以,底线是,如果我不能在Blend中设置对我的行为依赖属性的绑定,并且它不继承DataContext,为什么还要使用依赖属性呢?我可以改用CLR属性.

解决方法 编辑:dain是正确的你仍然可以绑定到人工创建的DataContext,你有多少次看到人们绑定到SolIDcolorBrush.color?即使SolIDcolorBrush继承自DependencyObject,它也可以工作,因此没有DataContext.

见this blog post on the inheritance context.

问题是,由于行为是附加的,它们不会出现在逻辑树中,因此无论如何都不会继承DataContext.

总结

以上是内存溢出为你收集整理的wpf – 混合行为 – 你能绑定到他们的属性吗?全部内容,希望文章能够帮你解决wpf – 混合行为 – 你能绑定到他们的属性吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1078857.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存