マウスの右クリックで TreeViewItem を選択しようとしています。私のXAMLがあります:
<TreeView x:Name="treeView" ItemsSource ="{Binding DisplayedDocuments}"
SelectedItemChanged="TreeView_SelectedItemChanged" IsEnabled="True"
MouseRightButtonDown="treeView_MouseRightButtonDown">
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate ItemsSource="{Binding Path=DisplayedSubItems}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Converter={StaticResource docImageConverter}}"/>
<TextBlock Width="5"></TextBlock>
<TextBlock Text="{Binding Caption}"
MouseRightButtonDown="TextBlock_MouseRightButtonDown"/>
</StackPanel>
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.ItemTemplate>
</TreeView>
treeViewItem をクリックするとTextBlock.MouseRightButtonDown
、代わりに発生することがありtreeView.MouseRightButtonDown
ます。そこで、TextBlock_MouseRightButtonDown の TextBlock で treeViewItem を取得したいと思います。私はこの方法で取得しようとしました:
TextBlock docCaption = e.OriginalSource as TextBlock;
StackPanel stackPanel = docCaption.Parent as StackPanel;
しかし、stackPanel.Parent は null です。
名前でコントロールを見つけようとしました:
TreeViewItem treeViewItem = (TreeViewItem)treeView.FindName(docCaption.Text);
しかし、それはnullを返します。