gpt4 book ai didi

wpf - 如果 DataContext 为空或不使用 WPF,我如何触发样式更改

转载 作者:行者123 更新时间:2023-12-04 01:50:38 26 4
gpt4 key购买 nike

我有一个包含多个控件的页面。控件必须显示它们从页面的 DataContext 获得的值。如果 DataContext 为空,我想做的是显示页面的另一种外观。在某些情况下,无论是否设置了“他们的”属性,页面的控件应该以不同的方式显示。

是否可以创建绑定(bind)以查看是否设置了 DataContext?

我作为解决方法所做的是将 IsDataContextSet 属性添加到页面并指定如下绑定(bind):

Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Page}}, Path=IsDataContextSet}" Value="false"

这可以按我的预期工作,但我觉得他们这样做是更优雅的方式。或者至少或更多的 WPFish 方式。

最佳答案

鉴于您描述的场景,我将使用样式和数据触发器设置属性。数据触发器将使用默认绑定(bind),即数据上下文。

一个示例可能如下所示:

<Border>
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background"
Value="Orange" />
<Style.Triggers>
<DataTrigger Binding="{Binding}"
Value="{x:Null}">
<Setter Property="Background"
Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>

除非数据上下文为空,否则边框将为橙色,在这种情况下,背景为黄色。

关于wpf - 如果 DataContext 为空或不使用 WPF,我如何触发样式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/286519/

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