안녕하세요. 개발자 이재웅입니다. 오늘은 WPF Converter를 구현할 때 MarkupExtension을 활용하여 더 간편하게 사용하는 방법에 대해 소개해드리려고 합니다.
이 방법을 사용하면 XAML에서 Converter를 적용할 때 따로 Resource Key를 만들지 않아도 되어서 코드를 더 깔끔하게 유지할 수 있습니다. 이번 예시에서는 BooleanToVisibilityConverter를 MarkupExtension과 함께 상속받아 작성해보겠습니다.
먼저, 다음과 같이 BooleanToVisibilityConverter 클래스를 작성합니다.
public class BooleanToVisibilityConverter : MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(true) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
이제 XAML에서 다음과 같이 Converter를 적용해보세요.
<Border Visibility="{Binding IsVisible, FallbackValue=Collapsed,
Converter ={cnvts:BooleanToVisibilityConverter}}"/>
저도 최근에 이 방법을 알게 되어 사용해보고 있는데, 코드를 더 깔끔하게 작성할 수 있어서 좋았습니다. 혹시 문제되는 부분이 있거나 원래 사용하고 계신 분들의 의견도 듣고 싶습니다. 만약 이 방법에 문제가 있는 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
이 주제는 제가 닷넷데브 에서도 한번 소개 드렸던 내용이기도 합니다.
관심있으신 분들은 아래 링크된 글도 함께 읽어 보시면 좋을 것 같습니다.
IValueConverter에 MarkupExtension 더하기
안녕하세요. 😄 WPF Converter 관련 간단한 팁입니다. MarkupExtension WPF Converter를 만들 때 IValueConverter와 이것을 함께 상속받아 만들게 되면 Xaml에서 Converter를 사용할 때 Resource Key를 따로 만들지 않아
forum.dotnetdev.kr
이상으로 WPF Converter 간편 구현 팁 - MarkupExtension 활용에 대한 포스트를 마치겠습니다. 읽어주셔서 감사합니다.
개발자 이재웅 [팔로우]
- 이메일: james@jamesnet.dev
- 홈페이지: jamesnet.dev
- 네이버 블로그: jamesnet214
- 티스토리: jamesnet
- 유튜브: @jamesnet214
- 인스타그램: jamesnet214
- 페이스북: jamesnet214
- 트위터: jamesnet214
- 깃허브: jamesnet214
- 링크드인: jamesnet214
- 닷넷데브: jamesnet214
- 마이크로소프트 MVP: jaewung lee
(따뜻한 인사 한마디가 저에게는 큰 힘이 됩니다!)
댓글