WPF ValueConverter 기초

데이터 바인딩 과정에서 데이터 타입과 UI 표시 형식이 일치하지 않을 때, 중간에서 데이터를 변환해주는 ValueConverter의 활용법을 정리했다.

ValueConverter: 데이터와 UI 간 변환 인터페이스

IValueConverter 인터페이스를 구현하면 서로 다른 타입의 데이터와 UI 속성을 연결할 수 있다.

bool 값을 WPF의 Visibility 타입으로 변환하는 컨버터의 예시는 다음과 같다.

public class BoolToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        bool isVisible = (bool)value;
        return isVisible ? Visibility.Visible : Visibility.Collapsed;
    }
    // ConvertBack은 필요 시 구현한다.
}

XAML 적용 방식

작성한 컨버터는 리소스에 등록 후 바인딩 문구에 추가하여 적용한다.

<ProgressBar Visibility="{Binding IsLoading, Converter={StaticResource BoolToVis}}" />

ValueConverter 활용의 이점

  • 뷰모델의 순수성 유지: 뷰모델이 UI 전용 타입인 VisibilityBrush 등을 참조하지 않아도 된다.
    뷰모델은 비즈니스 데이터만 관리한다.

  • 재사용성: 범용적으로 설계된 컨버터는 여러 프로젝트에서 재사용 가능하다.

  • 선언적 UI 제어: 비하인드 코드 없이 XAML 상에서 논리적인 화면 제어가 가능하여 가독성이 향상된다.

유연한 설계 구조

ValueConverter는 MVVM 패턴의 구조적 완성도를 높이는 도구이다.

데이터와 UI 사이의 간극을 메워 코드를 깔끔하고 유연하게 관리할 수 있게 한다.

다양한 컨버터 활용을 통해 효율적인 UI 구조를 설계할 수 있는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts