WPF DataTrigger永远不会触发Expand TreeView

时间:2018-03-20 13:38:21

标签: c# wpf

我有以下XAML,当特定属性ExpandNodes为True时,它应该扩展我的整个树视图,但它永远不会被触发。

 ruby myapp -f

在我的ViewModel中,我在特定事件期间将ExpandNodes设置为True,但树视图仍未展开。这不是我的DataContext的问题,因为我有来自同一Viewmodel的其他属性绑定并且工作正常。

My Viewmodel:

<TreeView>
    <TreeView.ItemContainerStyle>
            <Style TargetType="{x:Type TreeViewItem}">

                <Setter Property="IsExpanded" Value="False" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ExpandNodes}" Value="True">
                        <Setter Property="IsExpanded" Value="True" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ExpandNodes}" Value="False">
                        <Setter Property="IsExpanded" Value="False" />
                    </DataTrigger>
                </Style.Triggers>

            </Style>
        </TreeView.ItemContainerStyle>

// some other code

</TreeView>

1 个答案:

答案 0 :(得分:1)

太复杂了,你可以简单地将IsExpanded属性绑定到你的对象并引发PropertyChanged事件。

<TreeView>
    <TreeView.ItemContainerStyle>
         <Style TargetType="{x:Type TreeViewItem}">
           <Setter Property="IsExpanded" Value="{Binding ExpandNodes, 
            Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, 
            TargetNullValue=False}" />
         </Style>
     </TreeView.ItemContainerStyle>
// some other code
</TreeView>