KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In WPF, when I right-click on a treeview item I would like it to be Selected/Activated before showing the context menu. This sounds pretty simple, but the inclusion of a hierachicalDataTemplate complicates things a little. I have the following treeview: <TreeView x:Name="trv" ContextMenu="{StaticResource contextMenu}" ItemTemplate="{StaticResource treeHierarchicalDataTemplate}" ItemsSource="{Binding Source={StaticResource meetingItems}}" > <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <EventSetter Event="TreeViewItem.PreviewMouseRightButtonDown" Handler="trv_PreviewMouseRightButtonDown"/> <Setter Property="IsExpanded" Value="True"></Setter> </Style> </TreeView.ItemContainerStyle> </TreeView> And here is my event handler... private void trv_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) { TreeViewItem item = sender as TreeViewItem; if (item != null) { item.Focus(); e.Handled = true; } } Note how I add an EventSetter above. This ALMOST works. But it only selects the root-level treeview node (i.e. the root parent of the node on which I right click). This may be because of my hierarchical data template? This template can contain children OF THE SAME TYPE. Here is my hierarchical data template... <HierarchicalDataTemplate x:Key="treeHierarchicalDataTemplate" ItemsSource="{Binding Path=ChildMeetingItems}"> <HierarchicalDataTemplate.Triggers> <DataTrigger Binding="{Binding Path=Red}" Value="True"> <Setter TargetName="img" Property="Image.Source" Value="pack://siteoforigin:,,,/images/bookRed.png"></Setter&
Tags (comma-separated)
Save Edits
Cancel