【发布时间】:2012-06-27 15:03:42
【问题描述】:
我的 ViewModel 中有一个布尔属性,命名为 IsNotSupported,用于在不支持传感器时显示一些警告信息。因此我使用了BooleanToVisibilityConverter,它被添加到资源中:
<phone:PhoneApplicationPage.Resources>
<local:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</phone:PhoneApplicationPage.Resources>
并将其绑定到包含警告的堆栈面板:
<StackPanel x:Name="NotSupportedWarning" Visibility="{Binding IsNotSupported,
Converter={StaticResource BooleanToVisibilityConverter}}">
这一切都很好,但是在加载页面时,并且支持传感器,警告仅出现几分之一秒,然后消失。我知道这种闪烁是由于尚未发生绑定而导致的,因此默认为可见。
那种闪烁真是烦人......它应该默认为折叠并且只有在清楚应该显示警告后才可见。此外,这将避免绑定后的第二次布局传递,因此可能会对性能产生积极影响。
我一遍又一遍地遇到这个问题,直到我发现this SO 问题,这是密切相关的,但如果搜索windows phone 而不是silverlight 则找不到。问题和解决方案都可能看起来很简单,但我确实困扰了我很长时间,所以我认为写一个Q&A-style 的问题来帮助面临同样问题的其他人可能是个好主意。支持>
【问题讨论】:
标签: c# windows-phone-7 xaml data-binding windows-phone