0

マウスの右クリックで 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を返します。

4

1 に答える 1