想给数据项添加右键菜单,重新给右键菜单写了样式,右键菜单中包含button,如何给Button的Command绑定到页面的ViewModel,以下是代码示例
<DataTemplate x:Key="GridViewItemDataTemplate"> <Border Width="80" Height="80" BorderBrush="Black" BorderThickness="1" Background="Black"> <Border.ContextMenu> <ContextMenu Width="88" Height="72"> <ContextMenu.Style> <Style TargetType="{x:Type ContextMenu}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ContextMenu}"> <Border Margin="0" Background="#FF171F27" BorderBrush="#FF707070" BorderThickness="1,1,1,1" CornerRadius="4"> <Grid Margin="5,5,5,5"> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="20"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <!--<Button Grid.Row="0" Grid.Column="0" Content="R+" Command="{Binding DataContext.UpdateAiCellCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Page}}" CommandParameter="{Binding }"/>--> <TextBlock Grid.Row="0" Grid.Column="0" Text="R:" Foreground="#FFFF0000" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="14"/> <uc:NumUpDown Grid.Row="0" Grid.Column="1" Value="{Binding RNum, Mode=TwoWay}" Foreground="#FFFF0000" FontSize="14" Height="25" VerticalAlignment="Center" CornerRadius="4" Minimum="0" Maximum="99" AllowInputType="AllowNumericOnly"/> <TextBlock Grid.Row="1" Grid.Column="0" Text="G:" Foreground="#FF00FA00" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="14"/> <uc:NumUpDown Grid.Row="1" Grid.Column="1" Value="{Binding GNum, Mode=TwoWay}" Foreground="#FF00FA00" FontSize="14" Height="25" VerticalAlignment="Center" CornerRadius="4" Minimum="0" Maximum="99" AllowInputType="AllowNumericOnly"/> </Grid> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </ContextMenu.Style> </ContextMenu> </Border.ContextMenu> <Grid> <Image Source="/Resources/Images/cell.png" Stretch="Fill"/> <Grid Margin="5,8"> <Grid.Effect> <DropShadowEffect Color="Black" BlurRadius="5" Direction="0" ShadowDepth="0" Opacity="1" /> </Grid.Effect> <Grid.RowDefinitions> <RowDefinition Height="17"/> <RowDefinition Height="*"/> <RowDefinition Height="17"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="10"/> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding RNum}" Foreground="#FFFF0000"/> <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding GNum}" Foreground="#FF00FA00"/> <TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding CNum}" Foreground="#FF00FFFD"/> <TextBlock Grid.Row="2" Grid.Column="2" Text="{Binding YellowNum}" Foreground="#FFF7F800"/> </Grid> <CheckBox Width="16" Height="16" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,3,3" IsChecked="{Binding IsChecked, Mode=TwoWay}"> <CheckBox.Effect> <DropShadowEffect Color="Gray" BlurRadius="10" Direction="0" ShadowDepth="0" Opacity="0.5" /> </CheckBox.Effect> </CheckBox> </Grid> </Border> </DataTemplate>
效果如下:
以上作为记录