2014-02-18 31 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

我該如何解決呢?

回答