首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Binding.DoNothing需要评估回退价值

为什么Binding.DoNothing需要评估回退价值
EN

Stack Overflow用户
提问于 2013-10-06 04:26:57
回答 1查看 800关注 0票数 2

在下面的代码示例中,从值转换器返回Binding.DoNothing仍然会导致fallbackValue求值。注意上下文。

代码语言:javascript
复制
<Style>
<Setter Property="FontSize" Value="{Binding ActualHeight, RelativeSource={RelativeSource self}, Converter={...DoNothingReturningConverter...}/>

Binding.DoNothing文档清楚地说明了不使用回退值(尽管我不是100%确定如何解释“例如”)。关于这个主题的其他answers也做了同样的假设。

实际上,尝试计算回退值是为了在依赖属性项中设置表达式值。当将评估样式应用于控件时,这与控制流的转换器部分不同。

我正在寻找关于这种微妙的DoNothing行为的任何其他信息。在我看来,这是WPF 4.5中的一个错误,尽管它可能是设计出来的:-)

EN

回答 1

Stack Overflow用户

发布于 2013-10-09 03:52:32

啊哈哈现在我懂你了。这是有史以来最典型的绑定错误。实际上,这不是一个错误,它只是一个信息。它就像youtube上的小猫一样有害。

Wpf首先处理绑定,此时ActualHeight为0,然后wpf测量一个控件,然后wpf设置ActualHeight值,因为在测量之后,它知道控件获得了多少空间。

但是当ActualHeight为零时返回Binding.DoNothing,因此您会得到尚未设置任何值的信息。

忽略它吧。无论如何都不需要在输出窗口中显示这样的信息。如果关闭所有这些信息的显示,您的应用程序在调试模式下的性能会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19202384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档