사용자가 UI 컨텍스트를 통해 데이터 작업을 수행할 때, 각 행위를 EditModeType으로 정의하고 해당 변수의 값 변경을 감지하여 처리할 수 있습니다.
이를 구현하는 것이 EditModeTypeNotifier 클래스 입니다.
- UI 혹은 비즈니스 로직이 즉시 반응할 수 있도록 돕는 도우미 클래스이자,
- EditModeType 값의 변경을 추적하고
- 값 변경 시 외부에서 이벤트를 통해 반응할 수 있도록 도와줍니다.
또한, EditModeChangedEventArgs 이벤트 객체를 활용하면,
이전 값과 새로운 값에 모두 접근할 수 있어 값 변경에 따른 세부적인 처리 로직을 구현할 수 있습니다.
코드 구현 )
public enum EditModeType {
Insert,
Update,
Delete
}
class EditModeTypeNotifier {
private EditModeType _value;
public event EventHandler<EditModeChangedEventArgs> ValueChanged;
public event EventHandler ValueChanged2;
public EditModeType Value {
get => _value;
set {
var oldValue = _value;
_value = value;
ValueChanged?.Invoke(this, new EditModeChangedEventArgs(oldValue, _value));
}
}
}
public class EditModeChangedEventArgs : EventArgs {
public EditModeType OldValue { get; }
public EditModeType NewValue { get; }
public EditModeChangedEventArgs(EditModeType oldValue, EditModeType newValue) {
OldValue = oldValue;
NewValue = newValue;
}
}
사용 예시)
EditModeTypeNotifier notifier = new EditModeTypeNotifier();
notifier.ValueChanged += notifier_ValueChanged;
private void notifier_ValueChanged(object sender, EditModeChangedEventArgs e) {
EditModeType newValue = e.NewValue;
EditModeType oldValue = e.OldValue;
}
'Development > .NET' 카테고리의 다른 글
| 커스텀 체크박스 열 추가 (수정) (0) | 2024.12.04 |
|---|---|
| VisibleIndex와 실제 컬럼 구조의 차이 (UI 구조와 데이터 구조) (0) | 2024.11.28 |
| 커스텀 체크박스 열 추가 (제네릭 타입) (0) | 2024.11.28 |
| SelectionChanged 이벤트와 CollectionChangeAction.Refresh의 필요성 (0) | 2024.11.21 |
| DevExpress DetailBand의 FillEmptySpace 속성 이해와 활용 (0) | 2024.11.12 |