Как я могу сохранить древовидный элемент, если щелкнуть по нему правой кнопкой мыши и открыть контекстное меню? - PullRequest
0 голосов
/ 07 апреля 2020

Я использую wpf (C#). Я хочу щелкнуть правой кнопкой мыши на элементе древовидного представления, и затем всплывет контекстное меню с элементами меню, которые будут выполнять действия с выбранным / выбранным правой кнопкой мыши древовидным элементом с контекстным меню. элементы пытались использовать tree_view_item.MouseRightButtonUp += Item_MouseRightButtonUp;, но затем я не смог использовать элементы в контекстном меню пути элемента дерева

1 Ответ

0 голосов
/ 08 апреля 2020

Каждый FrameworkElement имеет свойство ContextMenu. Просто добавьте к нему MenuItem элементов:

MainWindow.xaml

<Window>
  <Window.Resources>
    <ContextMenu x:Key="TreeViewItemContextMenu">
      <MenuItem Header="Save" Click="OnSaveItemClicked"/>
    </ContextMenu>
  </Window.Resources>

  <TreeView>
    <TreeView.ItemContainerStyle>      
      <Style TargetType="TreeViewItem">
        <Setter Property="ContextMenu" Value"{StaticResource TreeViewItemContextMenu}" /> 
      </Style>
    </TreeView.ItemContainerStyle>  
  </TreeView>
<Window>

MainWindow.xaml.cs

partial class MainWindow
{
  private void OnSaveItemClicked(object sender, RoutedEventArgs e)
  {
    var item = (sender as MenuItem).DataContext; // TODO: Cast to data type
    Save(item);
  }
}
...