AllNoneCheckboxConverter.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Data;
  7. namespace CyberX8_MainPages.Converters
  8. {
  9. public class AllNoneCheckboxConverter : IMultiValueConverter
  10. {
  11. public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  12. {
  13. bool result = (bool)values[0];
  14. for (int i = 0; i < values.Length; i++)
  15. if (result != (bool)values[i])
  16. return null;
  17. return result;
  18. }
  19. public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
  20. {
  21. object[] result = new object[targetTypes.Length];
  22. bool isChecked = (bool)value;
  23. for (int i = 0; i < result.Length; i++)
  24. if (isChecked)
  25. result[i] = true;
  26. else
  27. result[i] = false;
  28. return result;
  29. }
  30. }
  31. }