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
C# WPF DataTrigger从不激发以扩展TreeView_C#_Wpf - Fatal编程技术网

C# WPF DataTrigger从不激发以扩展TreeView

C# WPF DataTrigger从不激发以扩展TreeView,c#,wpf,C#,Wpf,我有下面的XAML,当特定属性ExpandNodes为True时,它应该扩展我的整个树视图,但它从未被触发 <TreeView> <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="False" />

我有下面的XAML,当特定属性ExpandNodes为True时,它应该扩展我的整个树视图,但它从未被触发

<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>

太复杂了,您可以简单地将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>

当ExpandNodes值更改时,会有一个属性更改通知?是的,请参阅上面我对ViewModel的部分编辑。如果有一个ExpandNodes属性与ItemsSource集合处于同一级别,请尝试执行此操作的{Binding DataContext.ExpandNodes,RelativeSource={RelativeSource AncestorType=TreeView}。非常感谢。
<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>