我有一个包含多个控件的页面.控件绑定显示从页面的DataContext获取的值.我想要做的是在DataContext为null时显示页面的另一个外观.在某些情况下,如果设置了"他们的"属性,页面的控件应该以不同的方式显示.
是否可以创建绑定以查看是否设置了DataContext?
我作为一种解决方法做的是向页面添加一个IsDataContextSet属性并指定一个绑定,如:
Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Page}}, Path=IsDataContextSet}" Value="false"
Run Code Online (Sandbox Code Playgroud)
这符合我的预期,但我觉得他们更优雅的方式来做到这一点.或至少或更多WPFish方式.
Chr*_*age 18
根据您描述的场景,我将使用样式和数据触发器设置属性.数据触发器将使用默认绑定,即数据上下文.
示例可能如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
除非数据上下文为空,否则边框将为橙色,在这种情况下背景为黄色.
| 归档时间: |
|
| 查看次数: |
8239 次 |
| 最近记录: |