사용자 알림이나 정보 입력을 위해 다이얼로그(Dialog)를 활용한다.
WPF에서 메시지 박스와 커스텀 윈도우를 구현하는 방법과 설계 주의사항을 정리했다.
커스텀 다이얼로그 구현
데이터 송수신이 필요한 커스텀 다이얼로그는 ShowDialog() 메서드를 사용한다.
이 메서드는 다이얼로그 종료 전까지 부모 창의 상호작용을 차단한다.
// 1. 다이얼로그 실행 (모달 방식)
var dialog = new CustomDialogWindow();
dialog.Owner = App.Current.MainWindow; // 부모 창 설정
if (dialog.ShowDialog() == true) // '확인' 선택 시 실행
{
string result = dialog.InputText;
Process(result); // 데이터 처리 로직
}
다이얼로그 설계 지침
-
모달(Modal) vs 모달리스(Modeless):
ShowDialog()는 부모 창 제어가 불가능한 ‘모달’ 방식이다.
필수적 결정이나 입력이 필요한 상황에 적합하다. -
DialogResult 활용: 사용자의 선택(확인/취소)을 판단하는 기준이 된다.
로직 흐름을 제어하는 요소이다. -
Owner 설정: 다이얼로그의 위치 관리와 부모 창과의 연동을 위해 설정이 필요하다.
사용자 인터랙션 최적화
다이얼로그는 사용자와의 직접적인 소통 수단이다.
MVVM 패턴에서는 이를 인터페이스로 추상화하여 관리하는 ‘다이얼로그 서비스’를 활용할 수 있다.
명확한 정보 전달과 사용자 흐름 유지를 고려하여 다이얼로그를 설계해야 하는 것 같다.