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>
而問題的註釋截圖:
我該如何解決呢?