在 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>
算法大赛
云+社区沙龙online [技术应变力]
微搭低代码直播互动专栏
TVP技术夜未眠
TVP技术夜未眠
高校公开课
云+社区沙龙online [新技术实践]
领取专属 10元无门槛券
手把手带您无忧上云