gpt4 book ai didi

silverlight - 如何防止 Silverlight View 中的闪烁?

转载 作者:行者123 更新时间:2023-12-01 11:58:09 27 4
gpt4 key购买 nike

我在我的 Silverlight UI 中遇到了一个相当普遍的情况,其中各种元素的可见性绑定(bind)到 ViewModel 上的某些属性。例如,我可能有这样的控件:

<myapp:WarningView Visibility="{Binding IsInWarningState}" />

如果警告状态为真,我们要显示控件,否则,我们不显示。问题是我遇到过很多情况,页面呈现并显示所有内容,包括 WarningView 控件,然后一秒钟后隐藏 View ,这看起来非常笨拙。

我认为正在发生的事情是 View 加载并对服务器进行异步调用以获取数据,但在此之前,没有 DataContext,因此 WarningView 无法绑定(bind),并使用默认值和默认值就是显示控件。

对于 View 来说,实例化它自己的 View 模型似乎是最干净的,或者至少这就是我现在正在做的。由于调用是异步的,因此当您想要显示某些内容但还没有要显示的真实数据时,总会有一些时间间隔。我可以想象制作一个具有更好默认值的模拟 ViewModel,但这似乎需要在整个项目范围内完成大量工作。

那么解决这个问题的最佳方法是什么?

最佳答案

好吧,在我放弃这个之后很久,我自己偶然发现了答案:在绑定(bind)中你可以指定一个 FallbackValue 和/或 TargetNullValue,它们指定一个值,当你绑定(bind)的东西不能时使用获得或为空。我的问题是 View 加载并创建了 ViewModel,并且在 View 可见和绑定(bind)完成之间的瞬间,控件可见,然后绑定(bind)折叠它们,这会导致闪烁。通过设置 Fallback 值,我可以确保控件折叠,然后仅在绑定(bind)时打开,然后它们保持打开状态。无闪烁。

关于silverlight - 如何防止 Silverlight View 中的闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com