gpt4 book ai didi

wpf - 将元素可见性绑定(bind)到 ViewModel 属性,并提供设计时支持

转载 作者:行者123 更新时间:2023-12-04 19:36:48 25 4
gpt4 key购买 nike

我有一个使用 Caliburn.Micro 的 WPF 应用程序。当我希望应用程序等待在后台完成一些工作时,我希望能够用阴影和进度环(来自 MahApps.Metro )覆盖应用程序。

我目前所拥有的确实有效,但覆盖在设计时始终处于打开状态。我的 ShellView窗口如下所示:

<Window ...>
...
<Grid>
...
<Rectangle x:Name="waitShadow" Fill="#3f000000" Stroke="Black" StrokeThickness="0" Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}" Grid.RowSpan="2"/>
<ContentControl ... Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}">
<Controls:ProgressRing ...> <!-- from MahApps.Metro -->
</Controls:ProgressRing>
</ContentControl>
</Grid>
</Window>

我的 ShellViewModel类具有公共(public) bool 属性 IsWaiting当我将其设置为 true影子和戒指出现了,一切都被禁用了。当我将其设置为 false它恢复正常,因此绑定(bind)有效(我正在使用 Fody 和 PropertyChanged 插件)。唯一的问题是 Visibility属性在设计时不会折叠。

有没有更好的方法让覆盖在设计时起作用?

最佳答案

您可以设置一个FallbackValue在您的装订上,这将是 Collapse它在设计时

Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Collapsed}"

您也可以制作 IsWaiting一个 DependancyProperty并在那里设置默认值,但我发现这是最简单的解决方案。

关于wpf - 将元素可见性绑定(bind)到 ViewModel 属性,并提供设计时支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737067/

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