Wpf TreeView IsExpanded

时间:2012-10-09 12:31:31

标签: wpf xaml binding treeview model-binding

我尝试使用其他上下文绑定到Hierarchical模板中的IsExpanded属性。

 <HierarchicalDataTemplate  x:Key="TreeView1"  ItemsSource="{Binding Path=Folders}" >
    <StackPanel Margin="5,5,5,5" Orientation="Horizontal">
        <StackPanel Name="spinCont">
            <ModulesUpToDateChecker1:Spinner Width="20" x:Name="Spin" FolderContext="{Binding}"  StateContext="{Binding Path=State}"></ModulesUpToDateChecker1:Spinner>
            <Image x:Name="imgFolderIcon" Width="16" Visibility="Hidden" 
                               Source="/ModulesUpToDateChecker;component/Resources/FolderClosed16.png">
                <Image.Triggers>

                </Image.Triggers>
            </Image>
            <Image VerticalAlignment="Center" x:Name="imgFolderItem"
                                        Source="{Binding Path=State, Converter={StaticResource stateFolderConverter}}">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Style.Triggers>
                            <MultiDataTrigger>
                                <MultiDataTrigger.Conditions>
                                    <Condition Binding="{Binding Path=IsLast}" Value="true"></Condition>
                                </MultiDataTrigger.Conditions>
                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                            </MultiDataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
        </StackPanel>
        <StackPanel DataContext="{Binding Path=Modules}">
            <ModulesUpToDateChecker1:Spinner Width="20">
                <ModulesUpToDateChecker1:Spinner.Style>
                    <Style TargetType="{x:Type ModulesUpToDateChecker1:Spinner}">
                        <Setter Property="Visibility" Value="Collapsed" />
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=Animation}" Value="True" >
                                <Setter Property="Visibility" Value="Visible" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ModulesUpToDateChecker1:Spinner.Style>
            </ModulesUpToDateChecker1:Spinner>
            <Image VerticalAlignment="Center"
                                        Source="{Binding Path=State, Converter={StaticResource stateImageConverter}}">
                <Image.Style>
                    <Style TargetType="{x:Type Image}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=Animation}" Value="True" >
                                <Setter Property="Visibility" Value="Collapsed" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
        </StackPanel>
        <TextBlock Text="{Binding Path=Name}" Margin="10,0,0,0"></TextBlock>
    </StackPanel>


    <HierarchicalDataTemplate.Triggers>
        <!--<Trigger Property="{Binding}" Value="true">
            <Setter TargetName="imgFolderIcon" Property="Source" Value="/ModulesUpToDateChecker;component/Resources/Error.png" />
        </Trigger>-->
        **<DataTrigger  Binding="{Binding Path=IsExpanded}" Value="true">
            <Setter TargetName="imgFolderIcon" Property="Source" Value="/ModulesUpToDateChecker;component/Resources/Error.png" />
        </DataTrigger>**
  

doest work

    </HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>

我有“文件夹”上下文(它的分层对象)但是如何绑定到HierarchicalDataTemplate.Triggers中的theTreeView属性?当我启动它时,输出显示Folder对象中没有IsExpanded属性。所以,我有错误的背景。

1 个答案:

答案 0 :(得分:1)

 <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="true">
            <Setter  TargetName="imgFolderIcon"  Property="Source" Value="/Resources/FolderExpanded.png" />
        </DataTrigger>