Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf MultiTrigger:组合数据触发器和属性触发器不工作_Wpf_Image_Datatrigger_Multidatatrigger_Multitrigger - Fatal编程技术网

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,它按预期工作,然后我需要找到另一个解决方案。非常感谢。将标记为已回答,因为给出的解决方案应回答以下问题:)