我有一个问题,我需要将DataTrigger和PropertyTrigger组合到MultiDataTrigger中,以便在GridViewColumn中显示Image (与TreeView组合,这是我正在使用的自定义控件)。我在互联网上试验和搜索了一些东西,这就是我取得的进展:
<Image Width="16"
Height="16"
Stretch="UniformToFill">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source"
Value="{Binding ScorecardNiveau, Converter={StaticResource ScorecardNiveauToImageConverter}}" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding WpfSettings.IsExpanded}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Source}" Value="/folder_closed.png" />
</MultiDataTrigger.Conditions>
<Setter Property="Source" Value="/folder_open.png" />
</MultiDataTrigger>
</Style.Triggers>
</Image.Style>
</Image>现在,根据Converter的说法,最初,Image可以有两个图像。要么是folder_open,要么是另一个(现在不重要了)。现在我想要的是:当TreeViewNode被展开(WpfSetting.IsExpanded = true)并且图像源为folder_closed时,我希望图像获得folder_open图像。我想我已经接近上面的代码了,但是它并不能真正工作。当我打开一个TreeViewNode时,Image一点也没有改变。
我想我在RelativeSource=Self上做了一些错误的事情,但我不确定。
有谁能帮我吗?提前谢谢。
当然,如果需要,可以提供更多信息/代码。
发布于 2012-03-01 18:40:23
问题不在RelativeSource=Self,但当您尝试将源(类型为ImageSource)与字符串值("/folder_closed.png")进行比较时,它返回false
尝试以下条件:
<Condition Binding="{Binding ScorecardNiveau, Converter={StaticResource ScorecardNiveauToImageConverter}}" Value="/folder_closed.png" />https://stackoverflow.com/questions/9514146
复制相似问题