Как установить свойство IsSelected для древовидной структуры, которая содержит текстовый блок - PullRequest
0 голосов
/ 26 июня 2019

Я создал TreeView, и внутри TreeView расположен текстовый блок:

 <TreeView x:Name="tvBelege" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="3" Grid.ColumnSpan="2" MinHeight="200" MaxHeight="300" Margin="5,5,5,5" SelectedItemChanged="TvBelege_SelectedItemChanged">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="local:Beleg" ItemsSource="{Binding Projektphasen}">
                <TextBlock Text="{Binding DisplayName}"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
 </TreeView>

После загрузки диалога элемент должен быть выбран автоматически следующим образом:

enter image description here

Но нет свойства или функции , подобной select или IsSelected для установки.Как я могу это сделать?

1 Ответ

0 голосов
/ 26 июня 2019

Добавьте свойство IsSelected к вашему классу Beleg и определите ItemContainerStyle, который связывает свойство IsSelected контейнера TreeViewItem с ним:

<TreeView x:Name="tvBelege" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="3" Grid.ColumnSpan="2" MinHeight="200" MaxHeight="300" Margin="5,5,5,5" SelectedItemChanged="TvBelege_SelectedItemChanged">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate DataType="local:Beleg" ItemsSource="{Binding Projektphasen}">
            <TextBlock Text="{Binding DisplayName}"/>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
    <TreeView.Resources>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
        </Style>
    </TreeView.Resources>
</TreeView>

Затем вы устанавливаете свойство объекта Beleg, который будет выбран в вашей модели представления.

...