【问题标题】:Wpf TreeView IsExpandedWpf TreeView IsExpanded
【发布时间】:2012-10-09 12:31:31
【问题描述】:

我尝试使用另一个上下文绑定到 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>**

确实有效

    </HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>

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

【问题讨论】:

  • IsExpanded 是绑定到树视图的对象的属性吗?
  • 不,IsExpanded 是 TreeView 的标准属性。
  • 当我尝试绑定到它时,我得到的是文件夹对象上下文,而不是 TreeViewItem 上下文!是否可以获取 TreeViewItem 以获取 IsExpanded 道具。对不起我的英语。(

标签: wpf xaml binding treeview model-binding


【解决方案1】:
 <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="true">
            <Setter  TargetName="imgFolderIcon"  Property="Source" Value="/Resources/FolderExpanded.png" />
        </DataTrigger>

简单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 2013-08-26
    • 2014-10-12
    • 2015-03-12
    • 1970-01-01
    • 2017-09-16
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多