0
我想單擊鼠標右鍵選擇TreeViewItem。還有就是我的XAML:如何通過TextBlock找到silverlight TreeViewItem?
<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>
當我點擊樹型視圖有時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。
什麼是你真正想達到什麼目的?你有兩個MouseRightButtonDown處理程序的原因嗎? – Krishna
首先,我試圖顯示右鍵點擊當前(未選定)項目的上下文菜單。 – Roux
是的,但是您是否需要在TreeView和TextBlock上使用MouseRightButtonDown? – Krishna