12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.Globalization;
- using System.Windows;
- using System.Windows.Data;
- using System.Windows.Markup;
- namespace AICustomizeSDKDemo.Extensions
- {
- [MarkupExtensionReturnType(typeof(IValueConverter))]
- public class BoolToVisibilityConverterExtension : MarkupExtension
- {
- [ThreadStatic]
- private static BoolToVisibilityConverter _converter;
- public override object ProvideValue(IServiceProvider serviceProvider)
- {
- return _converter ?? (_converter = new BoolToVisibilityConverter());
- }
- private class BoolToVisibilityConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- var converterParameter = parameter?.ToString();
- if (value == null)
- {
- return converterParameter == "Reverse" ? Visibility.Collapsed : Visibility.Visible;
- }
- if ((bool)value)
- {
- return converterParameter == "Reverse" ? Visibility.Collapsed : Visibility.Visible;
- }
- return converterParameter == "Reverse" ? Visibility.Visible : Visibility.Collapsed;
- }
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
- {
- var converterParameter = parameter?.ToString();
- if (value == null)
- {
- return Visibility.Visible;
- }
- if ((Visibility)value == Visibility.Visible)
- {
- return converterParameter == "Reverse" ? false : true;
- }
- return converterParameter == "Reverse" ? true : false;
- }
- }
- }
- }
|