WPF Trigger中绑定静态变量

番茄爱上蛋 2018-10-18 06:31:00

<Label x:Name="xrayStatus" Height="80" Width="80" VerticalAlignment="Center" Grid.Column="1">
<Label.Style>
<Style TargetType="{x:Type Label}">
<Style.Triggers>
<DataTrigger Binding="{x:Static local:StatusInfoHelper.IsExposing}" Value="True">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
<DataTrigger Binding="{x:Static local:StatusInfoHelper.IsExposing}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>

以上代码为啥会提示key值为空,Trigger中该怎么绑定静态变量啊,麻烦大佬们帮帮忙,非常感谢!
...全文
293 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
KaysonWu 2018-10-31
  • 打赏
  • 举报
回复
看你的代码,我理解的是:你在做附加属性,然后想通过附加属性来触发一些事情。 如果是我所理解的话,你应该把样式放入一个资源字典里,这样会更好。

根据你的代码,我进行了相应的改动如下:


<Label x:Name="xrayStatus"
Height="80"
Width="80"
VerticalAlignment="Center" Grid.Column="1"
local:StatusInfoHelper.IsExposing="True" // 在这里设置附加属性即可
>
<Label.Style>
<Style TargetType="{x:Type Label}">
<Style.Triggers>
<Trigger Property="local:StatusInfoHelper.IsExposing" Value="True">

</Trigger>
<!-- Or -->
<DataTrigger Binding="{Binding Path=(local:StatusInfoHelper.IsExposing), Mode=OneWay, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>

_秦同学_ 2018-10-25
  • 打赏
  • 举报
回复
<DataTrigger Binding="{x:Static local:StatusInfoHelper.IsExposing}" Value="False">
改成 <DataTrigger Binding="{Binding IsExposing,Source={x:Static local:StatusInfoHelper}" Value="False"/>

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧