選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

49 行
1.6 KiB

  1. using BPA.UIControl.Commons;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Globalization;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows.Data;
  9. namespace BPA.UIControl.Converters
  10. {
  11. /// <summary>
  12. /// enum -> bool
  13. /// </summary>
  14. public class EnumToBooleanConverter : IValueConverter
  15. {
  16. /// <inheritdoc/>
  17. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  18. {
  19. return EnumToBooleanConverter.ConvertEnumToBool(value, parameter);
  20. }
  21. /// <summary>
  22. /// Converts the enum to bool.
  23. /// </summary>
  24. /// <param name="value">The value.</param>
  25. /// <param name="parameter">The parameter.</param>
  26. /// <returns>A bool.</returns>
  27. internal static bool ConvertEnumToBool(object value, object parameter)
  28. {
  29. string text = ValidateArgument.NotNullOrEmptyCast<string>(parameter, "parameter");
  30. ValidateArgument.NotNull(value, "value");
  31. return text.Equals(value.ToString());
  32. }
  33. /// <inheritdoc/>
  34. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  35. {
  36. bool flag = ValidateArgument.NotNullOrEmptyCast<bool>(value, "value");
  37. string text = ValidateArgument.NotNullOrEmptyCast<string>(parameter, "paramater");
  38. if (flag)
  39. {
  40. return Enum.Parse(targetType, text, false);
  41. }
  42. return null;
  43. }
  44. }
  45. }