現在、DataGrid を使用してテーブルを保持する WPF ウィンドウを構築しています。バインドと更新は正常に機能します。スタイリングも非常に軽視していますが、選択に関しては問題が発生しました。前提条件は次のとおりです。
- テーブルは読み取り専用です
- 行全体の選択
これは私のテーブルのソース コードです: (はい、選択色を 3 回、DataGrid に 1 回、行に 1 回、セルに 1 回設定したことは知っています。そのうちの 1 つが役立つと思いましたが、そうではありませんケース。)
<DataGrid x:Name="dgv" SelectionMode="Single" SelectionUnit="FullRow" AutoGenerateColumns="False" Grid.Column="0" Grid.RowSpan="3" Margin="8" RowHeight="32" GridLinesVisibility="Horizontal" HeadersVisibility="Column" HorizontalScrollBarVisibility="Hidden"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="True"
IsReadOnly="True"
LoadingRow="dgv_LoadingRow"
>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
<Setter Property="VerticalAlignment" Value="center"></Setter>
<Setter Property="Padding" Value="4"></Setter>
<Setter Property="Margin" Value="4"></Setter>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
</Style>
</DataGrid.RowStyle>
<DataGrid.Style>
<Style TargetType="DataGrid">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"></SolidColorBrush>
</Style.Resources>
</Style>
</DataGrid.Style>
その後、Column- および RowDefinitions に続きます...
次の問題が発生します。
- 行全体ではなく、セルのみが選択されます。セルの余白により、非常に奇妙に見えます (スクリーンショットを参照)。
- セルの余白 (スクリーンショットで赤くレンダリングされていない領域) をクリックしても行が選択されない - 行の選択が非常に直感的ではなくなります...
- 行を選択するためにクリックしたセルはまだ強調表示されています (選択した行の「Peter Müller」の周りに黒い境界線があることに注意してください)。
結果のスクリーンショットを次に示します。