Wpf MultiTrigger:组合数据触发器和属性触发器不工作
我有一个问题,我需要将Wpf MultiTrigger:组合数据触发器和属性触发器不工作,wpf,image,datatrigger,multidatatrigger,multitrigger,Wpf,Image,Datatrigger,Multidatatrigger,Multitrigger,我有一个问题,我需要将数据触发器和属性触发器组合成多数据触发器,以在网格视图列中显示图像(与树视图组合,这是我正在使用的自定义控件)。我在互联网上尝试和搜索了一些东西,这就是我取得的成就: <Image Width="16" Height="16" Stretch="UniformToFill"> <Image.Style> <Style TargetType="{x:Type
数据触发器
和属性触发器
组合成多数据触发器
,以在网格视图列
中显示图像
(与树视图
组合,这是我正在使用的自定义控件)。我在互联网上尝试和搜索了一些东西,这就是我取得的成就:
<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>
现在,根据转换器
,最初,图像
可以有两个图像。打开文件夹或另一个文件夹(现在不重要)。现在我想要的是:当TreeViewNode被展开(wpfset.IsExpanded=true
)并且当图像源被文件夹关闭时,我想要图像获得文件夹打开的图像。我想我已经接近上面的代码了,但它并没有真正起作用。当我打开一个树视图节点时,图像
根本没有改变
我认为我对RelativeSource=Self
上的条件做了一些错误,但我不确定
有谁能帮我吗?提前谢谢
当然,如果需要,可以提供更多信息/代码。问题不在于RelativeSource=Self,而是当您尝试将源(类型为ImageSource)与字符串值(“/folder\u closed.png”)进行比较时,返回false
请尝试以下条件:
<Condition Binding="{Binding ScorecardNiveau, Converter={StaticResource ScorecardNiveauToImageConverter}}" Value="/folder_closed.png" />
我尝试了它,但它仍然不起作用,尽管比较转换器的返回值很有意义。我认为问题在于WpfSettings.IsExpanded属性。当我使用多值转换器调试它时,IsExpanded属性的值为“UnsetDependencyProperty”,可能与调用触发器时的值相同。可能是。我尝试了一个类似的测试代码,IsExpanded为true/false,它按预期工作,然后我需要找到另一个解决方案。非常感谢。将标记为已回答,因为给出的解决方案应回答以下问题:)