none
MVVM TreeView ContextMenu RRS feed

  • Вопрос

  • Использую WPF шаблон проектирования MVVM.

    Имеется дерево элементов TreeView у каждого типа элемента дерева свой ContextMenu. Как сделать так, чтобы при нажатии правой кнопки мыши на элементе он сначала выделялся, а потом появлялось контекстное меню?

    Возможно ли обойтись без CodeBehind придерживаясь MVVM?

            <TreeView x:Name="treeView" DockPanel.Dock="Left" ItemsSource="{Binding Drawing}">
                <TreeView.Resources>
                    <!--Отображение дерева в развернутом виде-->
                    <Style TargetType="TreeViewItem">
                        <Setter Property="IsExpanded" Value="True" />
                    </Style>
                    <DataTemplate x:Key="ElementTemplate">
                        <Label Content="{Binding Name}" />
                    </DataTemplate>
                    <HierarchicalDataTemplate x:Key="SheetTemplate" ItemsSource="{Binding Elements}" ItemTemplate="{StaticResource ElementTemplate}">
                        <Label Content="{Binding Name}" />
                    </HierarchicalDataTemplate>
                    <HierarchicalDataTemplate x:Key="DrawingTemplate" ItemsSource="{Binding Sheets}" ItemTemplate="{StaticResource SheetTemplate}">
                        <Label Content="{Binding Name}" />
                    </HierarchicalDataTemplate>
                </TreeView.Resources>
                <TreeView.ItemTemplate>
                    <StaticResource ResourceKey="DrawingTemplate" />
                </TreeView.ItemTemplate>
            </TreeView>


    • Изменено Nesikk 11 марта 2012 г. 16:40
    11 марта 2012 г. 16:38

Ответы