C# 当节点展开或折叠时,如何更改WPF树视图中节点的图像?

C# 当节点展开或折叠时,如何更改WPF树视图中节点的图像?,c#,wpf,treeview,C#,Wpf,Treeview,我的Xaml如下所示: <TreeView Name="mainTree" ItemsSource="{Binding Folders}"> <TreeView.Resources> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />

我的Xaml如下所示:

<TreeView Name="mainTree" ItemsSource="{Binding Folders}">
  <TreeView.Resources>
    <Style TargetType="{x:Type TreeViewItem}">
      <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
      <Style.Triggers>
        <!-- ??? -->
      </Style.Triggers>
    </Style>
    <HierarchicalDataTemplate DataType="{x:Type local:FolderNode}" ItemsSource="{Binding Children}" >
      <StackPanel Orientation="Horizontal" Name="myPanel">
        <Image x:Name="treeImg" Width="16" Height="16" Source="Images/vsfolder_closed.png"/>
        <TextBlock Text="{Binding Name}" />
      </StackPanel>
      <HierarchicalDataTemplate.Triggers>
        <!-- ??? -->
      </HierarchicalDataTemplate.Triggers>
    </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

现在我想要的是,如果一个treenode被扩展,图像源将更改为Images/vsfolder_open.png

最简单的方法是什么


提前谢谢

将DataTrigger添加到HierarchycalDataTemplate。由于对ViewModel中展开的属性具有双向绑定,因此可以绑定到该属性并使用TargetName,因为DataTemplate中有名称范围

<HierarchicalDataTemplate.Triggers>
    <DataTrigger Binding="{Binding IsExpanded}" Value="True">
        <Setter TargetName="treeImg"
                Property="Source"
                Value="Images/vsfolder_open.png"/>
    </DataTrigger>
</HierarchicalDataTemplate.Triggers>