BeginEditとEndEditの働き
忘れそうなのでメモしておく。
バインドしていると、BeginEditは呼ばなくても開始している。
働きとして2つ。
- RowStateの更新
- Row値についてのバージョン管理切替え
メンバー名 説明 Original この行には元の値が格納されています。 Current この行には現在の値が格納されています。 Proposed この行には提示された値が格納されています。 Default DataRowState の既定バージョン。 DataRowState の値が Added、Modified、または Deleted の場合、既定バージョンは Current です。 DataRowState の値が Detached の場合、既定バージョンは Proposed です。
EndEditを呼ばない限り、編集中なのでバインドしているコントロールの値はProposedに格納されたままでCurrent(現在の値)にはならない。
AcceptChanges メソッドを呼び出すと、Original 値が Current 値と同じになってしまうので、変更を比較したい時には利用しない。
あと、RejectChangesメソッドは保留中のProposedを消してしまうのはCancelEditと同じ動きっぽい。