사용자가 입력한 데이터가 규칙을 준수하는지 확인하는 과정은 프로그램의 안정성에 직결된다.
WPF에서 MVVM 패턴을 유지하며 입력 검증을 수행하는 IDataErrorInfo 활용 기법을 정리했다.
IDataErrorInfo: 뷰모델 기반 검증 구조
뷰모델에 인터페이스를 구현하여 속성별 검증 로직을 작성한다.
데이터 변경 시점에 즉시 검증이 수행되도록 설계했다.
public class UserViewModel : Notifier, IDataErrorInfo
{
public string Email { get; set; }
// 인덱서를 통해 각 속성의 에러 메시지를 반환한다.
public string this[string columnName]
{
get
{
if (columnName == "Email")
{
if (string.IsNullOrEmpty(Email)) return "이메일은 필수 입력 항목입니다.";
if (!Email.Contains("@")) return "유효한 이메일 형식이 아닙니다.";
}
return null;
}
}
}
시각적 피드백 구성
검증 실패 시 사용자에게 오류를 알리기 위해 XAML에 에러 템플릿을 설정했다.
<TextBox Text="{Binding Email, ValidatesOnDataErrorInfo=True, UpdateSourceTrigger=PropertyChanged}">
<Validation.ErrorTemplate>
<!-- 에러 발생 시 표시할 디자인 정의 -->
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder /> <!-- 원래의 TextBox 위치 -->
<TextBlock Text="{Binding [0].ErrorContent}" Foreground="Red" FontSize="11"/>
</StackPanel>
</ControlTemplate>
</Validation.ErrorTemplate>
</TextBox>
데이터 무결성 확보
입력 검증은 시스템 오류 방지와 사용자 정보 전달을 위한 필수 단계이다.
뷰모델에서 논리적 검증을 담당하고 XAML에서 시각적 피드백을 처리하는 구조는 효율적이다.
데이터 검증을 통해 애플리케이션의 신뢰도를 높여야 하는 것 같다.