在 DataTemplate 中绑定 ContextMenu 的方法如下:
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
<DataTemplate x:Key="MyDataTemplate">
<Grid x:Name="MyGrid" ContextMenu="{StaticResource MyContextMenu}">
<!-- 在此处添加其他控件 -->
</Grid>
<DataTemplate.Resources>
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="菜单项1" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
<MenuItem Header="菜单项2" Command="{Binding ElementName=MyGrid, Path=DataContext.MyCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
</DataTemplate.Resources>
</DataTemplate>
领取专属 10元无门槛券
手把手带您无忧上云