我有一個數據網格(WPF)與一些項目(ListViewCollection)。 我有一個問題。我選擇一行,然後按列排序。所選行更改它的背景。爲什麼在排序後datagrid選擇的行背景變化?
下面我有datagrid代碼。和之前/之後的2個屏幕圖片。你可以看到,藍色變爲灰色
<DataGrid Background="White" IsSynchronizedWithCurrentItem="{x:Null}" EnableRowVirtualization="False" AutoGenerateColumns="False" CanUserSortColumns="True" ItemsSource="{Binding ConsoleLines}"
GridLinesVisibility="None" IsReadOnly="True" RowHeaderWidth="0" Style="{StaticResource DataGridStyle}" Margin="5">
<DataGrid.Columns>
<DataGridTemplateColumn CanUserSort="True" Header="{Binding TimeHeader, Source={StaticResource ResLoc}}" SortMemberPath="Time" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Time}" TextWrapping="Wrap" Foreground="{StaticResource DarkBackgroundBrush}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn CanUserSort="True" Header="{Binding MessageHeader, Source={StaticResource ResLoc}}" SortMemberPath="Message" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Message}" TextWrapping="Wrap" Foreground="{StaticResource DarkBackgroundBrush}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn CanUserSort="True" Header="{Binding CategoryHeader, Source={StaticResource ResLoc}}" SortMemberPath="Category" Width="150">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Category}" TextWrapping="Wrap" Foreground="{StaticResource DarkBackgroundBrush}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
感謝您的回答 –
一個事後:我建議儘可能將這些資源設置在對象圖上。在我的代碼片段中,它們位於用戶控件上,但理想情況下應該位於應用程序級別。 –
我很好奇爲什麼?我實際上讓它們在DataGrid.Resources中更低。謝謝你的方式! –