In XAML, how do you define a context menu for treeviewitems that are distinguished by different attributes?
<TreeView Name="SolutionTree" BorderThickness="0" SelectedItemChanged="SolutionTree_SelectedItemChanged" > <TreeView.Resources> <ContextMenu x:Key ="SolutionContext" StaysOpen="true"> <MenuItem Header="Add..." Click="AddFilesToFolder_Click"/> <MenuItem Header="Rename"/> </ContextMenu> <ContextMenu x:Key="FolderContext" StaysOpen="true"> <MenuItem Header="Add..." Click="AddFilesToFolder_Click"/> <MenuItem Header="Rename"/> <MenuItem Header="Remove"/> <Separator/> <MenuItem Header="Copy"/> <MenuItem Header="Cut"/> <MenuItem Header="Paste"/> <MenuItem Header="Move"/> </ContextMenu> </TreeView.Resources> </TreeView>
private void SolutionTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { TreeViewItem SelectedItem = SolutionTree.SelectedItem as TreeViewItem; switch (SelectedItem.Tag.ToString()) { case "Solution": SolutionTree.ContextMenu = SolutionTree.Resources["SolutionContext"] as System.Windows.Controls.ContextMenu; break; case "Folder": SolutionTree.ContextMenu = SolutionTree.Resources["FolderContext"] as System.Windows.Controls.ContextMenu; break; } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With