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
添加子节点后,WPF TreeView节点变得不可选择_Wpf_Xaml_Wpf Controls_Binding_Hierarchicaldatatemplate - Fatal编程技术网

添加子节点后,WPF TreeView节点变得不可选择

添加子节点后,WPF TreeView节点变得不可选择,wpf,xaml,wpf-controls,binding,hierarchicaldatatemplate,Wpf,Xaml,Wpf Controls,Binding,Hierarchicaldatatemplate,我对WPF树视图有一个很大的问题。我已经设置了一个类似于此的树 <TreeView DataContext="{Binding Projects}"> <Style TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="True" /> </Style> <TreeView.Resources> <Hi

我对WPF树视图有一个很大的问题。我已经设置了一个类似于此的树

<TreeView DataContext="{Binding Projects}">
    <Style TargetType="TreeViewItem">
        <Setter Property="IsExpanded" Value="True" />
    </Style>
    <TreeView.Resources>
        <HierarchicalDataTemplate x:Key="LoadTemplate">
            <Grid>
                <TextBlock Text="{Binding Name}" />
            </Grid>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate x:Key="StepTemplate"
                ItemsSource="{Binding Loads}" 
                ItemTemplate="{StaticResource LoadTemplate}">
            <Grid>
                <TextBlock Text="{Binding Name}" />
            </Grid>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate x:Key="ProjectTemplate"
                ItemsSource="{Binding Steps}"
                ItemTemplate="{StaticResource StepTemplate}">
            <Grid>
                <TextBlock Text="{Binding Name}" />
            </Grid>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
    <TreeViewItem Header="Project Workspace"
            ItemsSource="{Binding}"
            IsExpanded="True"
            ItemTemplate="{StaticResource ProjectTemplate}" />
</TreeView>
好的,这是我一直在努力解决的问题。新节点出现在树中后,其父节点不再是可选择的。因此,在给定的示例中,您不能选择拥有新添加的加载节点的步骤节点。您仍然可以执行双击和右键单击等操作并触发事件,但仅尝试使用鼠标左键单击不会导致选择步骤节点或使其具有焦点。我已经尝试了我能想到的一切,但我一辈子都想不出为什么不能

现在我可以在树中的其他节点上单击,它们是可选择的。这样做之后,以前不允许被选择的节点将恢复其以前的功能,并再次能够被选择


因此,如果你添加了一个新节点,它就会出现,并且它的父节点无法被选择,直到你选择树视图的其他部分,然后一切又恢复正常。

在没有帮助和我没有尝试过的情况下,我切换到使用Telerik控件。用Telerik的RadTreeView替换默认TreeView后,我的所有问题都消失了。如果可能的话,我建议人们避免使用微软内置的WPF TreeView控件,因为它有无数的问题,你将花费大量的时间来解决这些问题,而不是开发你的应用程序

Projects[0].Steps[0].Loads.add(new Load());