WPF에서 데이터 컨버터(DataConverter)는 데이터 소스에서 UI 컨트롤로 전달되는 데이터의 형식을 변환하는 데 사용됩니다. 이번 글에서는 bool to image, bool to visibility 등 몇 가지 예시 코드를 통해 데이터 컨버터의 사용 방법을 알아보겠습니다.
bool to image 데이터 컨버터
UI 컨트롤에서 이미지를 사용할 때, 데이터 소스에서 전달되는 데이터가 bool 형식일 경우 해당 데이터를 이미지로 변환하는 컨버터를 만들 수 있습니다. 이를 통해 UI 컨트롤에서 이미지를 손쉽게 사용할 수 있습니다.
public class BoolToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isTrue = (bool)value;
string imageName = isTrue ? "TrueImage.png" : "FalseImage.png";
ImageSource imageSource = new BitmapImage(new Uri($"pack://application:,,,/Images/{imageName}"));
return imageSource;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
bool to visibility 데이터 컨버터
UI 컨트롤에서 Visibility 속성을 사용할 때, 데이터 소스에서 전달되는 데이터가 bool 형식일 경우 해당 데이터를 Visibility 형식으로 변환하는 컨버터를 만들 수 있습니다. 이를 통해 UI 컨트롤의 Visibility를 손쉽게 제어할 수 있습니다.
public class BoolToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isTrue = (bool)value;
return isTrue ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}