我什么时候应该使用 FrameworkPropertyMetadata 或 UIPropertyMetadata 而不是普通的 PropertyMetadata?
在查看示例附加属性和行为时,我发现了 FrameworkPropertyMetadata
、UIPropertyMetadata
和 PropertyMetadata
的混杂使用。既然它们都形成了继承层次结构,那么我该如何选择使用哪一个呢?
When looking at sample attached properties and behaviors, I've seen a mishmash of uses of FrameworkPropertyMetadata
, UIPropertyMetadata
and PropertyMetadata
. Since they all form an inheritance hierarchy, how do I choose which one to use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这些类将报告依赖属性的一些行为方面。
检查不同的类别以了解它们提供的选项。
例如,
如果您只想通过 dp 返回属性并提供默认值,请使用
PropertyMetadata
,如果您想指定动画行为,请使用
UIPropertyMetadata
,但如果某些property 影响 wpf 框架级别的内容,例如元素布局、父布局或数据绑定,请使用 FrameworkPropertyMetadata。
详细信息您可以在 msdn http://msdn.microsoft.com/en-us 上查看/library/ms751554.aspx
These classes are to report some behavior aspects of a dependency property.
Check the different classes for the options they provide.
For example,
if you just want to back a property by dp and provide a default value, use
PropertyMetadata
,if you want to specify animation behavior, use
UIPropertyMetadata
,but if some property affects wpf framework level stuffs eg element layout, parent layout or databinding, use
FrameworkPropertyMetadata
.Details you can check on msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx
FrameworkPropertyMetadata
的一项有用功能是您可以定义行为BindsTwoWayByDefault
。否则,依赖属性默认为 OneWay。当您需要对依赖属性进行双向绑定时,通常您始终需要为每个绑定定义
Mode=TwoWay
。如果将此模式设置为默认模式,则无需再为每个绑定设置它。您可以这样设置行为:
完整示例:
One useful feature of
FrameworkPropertyMetadata
is that you can define the behaviourBindsTwoWayByDefault
. Otherwise the dependency property is OneWay by default.When you need a two way binding for a dependency property, then normally you always need to define
Mode=TwoWay
for each binding. If you set this mode as default, you don't need to set it for each binding anymore.You set the behaviour like this:
Complete example: