假设绑定是正确的并且图像文件是它们所处的位置,那么有人能够发现当触发器评估为真时下面的xaml中的图像不会改变的原因吗?
干杯,
Berryl
<Image Source="..\..\Images\OK.png" Grid.Column="2" Stretch="None">
<Image.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}" Value="True">
<Setter Property="Image.Source" Value="..\..\Images\Error.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
答案 0 :(得分:37)
尝试以下方法......
当前定义了属性路径的方式,它正在Image上寻找一个名为Image的属性(它不存在),然后在那个叫做Source的东西中。
此外,从顶部的Image标签中删除Source属性。这将覆盖样式应用的任何内容。您可以将其移动到另一个DataTrigger,也可以将其放入正常的setter中,如下所示:
<Image Grid.Column="2" Stretch="None">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="..\..\Images\OK.png" />
<Style.Triggers>
<DataTrigger Value="True" Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}">
<Setter Property="Source" Value="..\..\Images\Error.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
你的时间很有趣。我正准备在我的博客上发布一些关于控件的内容,该控件执行与此类似的操作,但语法更为简洁。