Jam*_*eet 3 c# wpf treeview xaml contextmenu
我有一个TreeView项目,我想要ContextMenu只弹出第二层项目.我该怎么做呢?
我假设你绑定了你TreeView的项目列表.如果是这样,第一和第二层项目是否可以具有不同的数据类型?然后,您可以HierarchicalDataTemplate为您的第一层类型和DataTemplate第二层类型执行以下操作:
<HierarchicalDataTemplate DataType="{x:Type local:FirstTierType}" ItemsSource="{Binding Items}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:SecondTierType}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="whatever1" Command="whatever1cmd"></MenuItem>
<MenuItem Header="whatever2" Command="whatever2cmd"></MenuItem>
<MenuItem Header="whatever3" Command="whatever2cmd"></MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
.
.
.
<TreeView ItemsSource="{Binding Items}" />
Run Code Online (Sandbox Code Playgroud)