Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

enable treeviewitem edit from F2 key press or edit contextmenu in wpf mvvm

$
0
0

I have a treeview which works with mvvm binding. And i have contextmenu enabled for them. Now i want to give user the ability to edit the treeviewitem by pressing F2 key or right click edit.

<TreeView x:Name="MyTreeView"><TreeView.Resources><DataTemplate x:Key="NormalTemplate"><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding ID}" Margin="3"/><TextBlock Text="-" Margin="3"/><TextBlock Text="{Binding Name}" Margin="3"/></StackPanel></DataTemplate><DataTemplate x:Key="EditTemplate"><TextBox Text="{Binding Name}"/></DataTemplate></TreeView.Resources><TreeView.ItemTemplate><HierarchicalDataTemplate
                             ItemsSource="{Binding Team}"><ContentPresenter Content="{Binding}"><ContentPresenter.Style><Style TargetType="{x:Type ContentPresenter}"><Setter Property="ContentTemplate"
                                        Value="{StaticResource
                                                NormalTemplate}"/><Style.Triggers><DataTrigger
                                         Binding="{Binding IsSelected,
                                         RelativeSource={RelativeSource
                                              FindAncestor,
                                         AncestorType={x:Type TreeViewItem}}}"
                                              Value="True"><Setter Property="ContentTemplate"
                                                Value="{StaticResource
                                                        EditTemplate}" /></DataTrigger></Style.Triggers></Style></ContentPresenter.Style></ContentPresenter></HierarchicalDataTemplate></TreeView.ItemTemplate></TreeView> 

I am thinking of below DataTrigger with a boolen property which can enable edit of treeviewitem.

<DataTrigger Binding="{Binding IsInEditMode, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}}" Value="True">

   bool isInEditMode = false;
    public bool IsInEditMode
    {
        get { return isInEditMode; }
        set
        {
            isInEditMode = value;
            PropertyChangedEventHandler handler = PropertyChanged;
            if(handler != null)
                handler(this, new PropertyChangedEventArgs("IsInEditMode"));
        }
    }


But i need to set this IsInEditMode only upon user pressing F2 key or selecting contextmenu "edit". Is that possible to enable edit of treeviewitem this way ? And upon pressing enter key after finishing edit i want to call the db and update the name.


Krrishna


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>