Как сделать TreeViewItem неразборным

Я работаю над проектом WPF, и у меня есть TreeView с помощью HierarchicalDataTemplates, Мне удалось установить несколько разных уровней узлов. Пока все идет хорошо.

<TreeView Margin="14,14,14,14" Name="treeView" ItemsSource="{Binding Tree}"
                               BorderThickness="0">
                  <TreeView.Resources>
                    <!--
                        First Level
                    -->
                    <HierarchicalDataTemplate DataType="{x:Type vm:FirstLevelViewModel}" 
                                              ItemsSource="{Binding Children}" >
                        <StackPanel Orientation="Horizontal" >
                        <TextBlock Text="{Binding SomeText}" FontSize="14" FontWeight="Bold" Foreground="DarkBlue"  />
                        </StackPanel>                           
                    </HierarchicalDataTemplate>
                    <!--
                        Second Level
                    -->
                    <HierarchicalDataTemplate DataType="{x:Type vm:SecondLevelViewModel}" 
                                              ItemsSource="{Binding Children}" >
                            <CheckBox Name="checkBox" IsChecked="{Binding IsChecked}" IsEnabled="{Binding IsEnabled}">
                            <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding SomeText}" FontSize="14" />
                            </StackPanel>
                        </CheckBox>
                    </HierarchicalDataTemplate>
. . . . 

Моя проблема заключается в следующем: мне нужно, чтобы некоторые узлы были неразборными.

Есть ли способ добиться этого? Я искал об этом без удачи.

1 ответ

Решение

Шаблон по умолчанию TreeViewItem определяет ToggleButton который показывает и скрывает подпункты. Вы можете создать свой собственный шаблон на основе того, в котором IsEnabled свойство привязано к некоторому свойству вашего элемента, так что его можно предотвратить переключением, конечно же, вы должны также связать IsExpanded (может быть сделано и вне шаблона), и значение в этом случае всегда должно быть true,

Другие вопросы по тегам