BoolToVisibilityConverterExtension.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Globalization;
  3. using System.Windows;
  4. using System.Windows.Data;
  5. using System.Windows.Markup;
  6. namespace SonopostSearchTool
  7. {
  8. [MarkupExtensionReturnType(typeof(IValueConverter))]
  9. public class BoolToVisibilityConverterExtension : MarkupExtension, IValueConverter
  10. {
  11. public BoolToVisibilityConverterExtension Converter { get; private set; }
  12. public override object ProvideValue(IServiceProvider serviceProvider)
  13. {
  14. return Converter ?? (Converter = new BoolToVisibilityConverterExtension());
  15. }
  16. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  17. {
  18. if (value is null || string.IsNullOrEmpty(value.ToString()))
  19. {
  20. return Visibility.Collapsed;
  21. }
  22. if (value is bool i && i == true)
  23. {
  24. return Visibility.Visible;
  25. }
  26. return Visibility.Collapsed;
  27. }
  28. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  29. {
  30. throw new NotImplementedException();
  31. }
  32. }
  33. }