DataGridはいくつかのDataTableにバインドされています。ユーザーがいくつかの値を変更しました。変更された行に色を付けたい。私はそれをしました。しかし、現在の行の値が変更されたことをDataGridに通知するにはどうすればよいですか?
PS変更された行を示すためにcurrentRow.Row.RowStateでトリガーを使用します。すべてのItemsSourceを更新したくありません-操作が長すぎます。
これらの線に沿った何かが一致を助けるかもしれません..正確ではありません.別のイベントハンドルでこれを呼び出す必要があるかもしれません..しかし、それは正しい方向へのポイントを与えるはずです!
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
int colIndex = e.ColumnIndex;
int rowIndex = e.RowIndex;
DataGridViewRow theRow = dgvOutstandingReports.Rows[rowIndex];
theRow.DefaultCellStyle.BackColor = Color.LightYellow;
}
最善の決定ではありませんが、期待どおりに機能します。
dataView.ListChanged += (o, e) =>
{
if (e.ListChangedType == ListChangedType.ItemChanged)
{
DataRowView row = ((DataView)o)[e.NewIndex];
if(row != null)
{
MethodInfo method = typeof(DataRowView).GetMethod("RaisePropertyChangedEvent", BindingFlags.Instance | BindingFlags.NonPublic);
method.Invoke(row, new object[] { "Row" });
}
}
};