2014-02-18 36 views
4

我的DataGrid有一个ContextMenu,它包含了对所选行进行操作的命令。这工作正常。WPF DataGrid失去了对ContextMenu的关注

问题是,每次打开ContextMenu(通过鼠标右键或菜单键)时,DataGrid都会失去焦点,所选行将其背景颜色从蓝色更改为浅灰色。这与此形成鲜明对比,用户会感觉到选择已被清除,并且不确定上下文菜单是否打开了正确的行。

颜色变化非常好,非焦点物品不应该有焦点颜色。但是打开上下文菜单不应该触发它。

下面是一些XAML代码:

<DataGrid 
    HeadersVisibility="Column" 
    HorizontalGridLinesBrush="#cccccc" VerticalGridLinesBrush="#cccccc" 
    BorderBrush="#cccccc" Background="{x:Null}" 
    CanUserReorderColumns="False" IsReadOnly="True" 
    ItemsSource="{Binding MyItems, NotifyOnTargetUpdated=True}" 
    AutoGenerateColumns="False" 
    SelectionChanged="DataGrid_SelectionChanged"> 
    <DataGrid.Columns> 
     <DataGridTextColumn .../> 
     <DataGridTextColumn .../> 
     <DataGridTextColumn .../> 
    </DataGrid.Columns> 
    <DataGrid.ContextMenu> 
     <ContextMenu DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}"> 
      <MenuItem Header="Command text" Command="{Binding MyCommand}"/> 
     </ContextMenu> 
    </DataGrid.ContextMenu> 
</DataGrid> 

而问题的注释截图:

Screenshot

我该如何解决呢?

回答