カレント行またはセルの文字色/背景色を個別に制御する方法

  DataGrid 上のカレント行またはセルの文字色/背景色を個別に制御するには、「セルの描画時にイベントを発生させる方法」 を利用して、セル描画時にイベントを発生させます。このイベントメソッド内で、行番号・セル値等を判断して文字色/背景色を個別に制御します。
  セル描画時にイベントを発生させることで、セルの編集中もカレント行の文字色/背景色を個別に制御することが可能です。
【使用例】 カレントセルの文字色/背景色を常にアクティブな状態に設定する。

セルの描画時にイベントを発生させる方法」を用いて、セル描画時にイベントを発生させます。
イベントメソッド内では、カレント行または選択行であるか否かを判定し、文字色/背景色を設定します。
/// <summary>
///  DataGridセル表示色設定イベント共通メソッド
/// </summary>
private void DataGrid_CellFormat( object sender, OsDataGridExtensions.DataGridCellFormatEventArgs e )
{
    // 表示する行番号がDataGridのカレント行と等しい場合または選択行の場合、カレント行の文字色・背景色を設定する
    if ( e.RowIndex == ((DataGridColumnStyle)sender).DataGridTableStyle.DataGrid.CurrentRowIndex
            || ((DataGridColumnStyle)sender).DataGridTableStyle.DataGrid.IsSelected( e.RowIndex ))
    {
        e.BackBrush = SystemBrushes.ActiveCaption;
        e.ForeBrush = SystemBrushes.ActiveCaptionText;
    }
}
【補足】
 DataGridTextBoxColumn, DataGridBoolColumn 共に DataGridColumnStyle の派生クラスなので、DataGridColumnStyle に Cast することで判断が可能です。
戻る