すべて、for eachループを使用してWPFをループし、エラーDataGrid
のあるセルの背景色を変更しようとしています。多くの質問をチェックしましたが、まだ十分な答えが見つかりません。私が今まで持っているのは
public void RunChecks()
{
const int baseColumnCount = 3;
foreach (DataRowView rv in dataGrid.Items)
{
for (int i = baseColumnCount; i < dataGrid.Columns.Count; i++)
{
if (!CheckForBalancedParentheses(rv.Row[i].ToString()))
{
Color color = (Color)ColorConverter.ConvertFromString("#FF0000");
row.Background = new SolidColorBrush(color); // Problem!
}
}
}
}
問題はBackground
、私の行の色を変更するために、に関連付けられたオブジェクトを操作DataGrid
する必要があることです。DataGridRow
DataRowView
rv
DataGridRow
オブジェクトrv
( )からへの参照を取得するにはどうすればよいDataRowView
ですか?
御時間ありがとうございます。
編集。以下のアドバイスに基づいて、マウスオーバーイベントで機能し、関連するセルの前後のフォントを設定する次のスタイルがあります。ただし、上記のコードでは、実行時にセルにバックカラーを適用する方法については本当に迷っています。XMLスタイルは
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontWeight" Value="ExtraBold" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>