XtraGrid で作業している 2 つの列があります。Column1 の値が変更されたら、いくつかのロジックを実行して、場合によっては Column2 の値を変更し、Column2 も無効にします。以下に私のコードを示しますが、3 つの問題があります。
- 私の CustomRowCellEdit 関数は、バックグラウンドでノンストップで実行されているようです。
- 行から離れてクリックしない限り、Column2 の SetRowValue は実際には発生しないようです。Column1 が変更されたらすぐに変更が必要です。
- IF ブロック内で無効にするにはどうすればよいですか?
次のイベントをグリッドに追加しました。
this._myGridView.CustomRowCellEdit +=
new DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventHandler(
this.myGridView_CustomRowCellEdit);
イベントは次のとおりです。
private void myGridView_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
if (e.Column.FieldName == "Column1" && e.RowHandle >= 0)
{
GridView gv = sender as GridView;
string value1 = gv.GetRowCellValue(e.RowHandle, gv.Columns["Column1"]).ToString();
if (value1 == "something")
{
gv.SetRowCellValue(e.RowHandle, gv.Columns["Column2"], someOtherValue);
// I'd like to disable Column2 in this IF logic.
}
}
}