ConnectivityFaultToColorConverter.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using SWRIS.Enums;
  2. using SWRIS.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Globalization;
  6. using System.Linq;
  7. using System.Windows.Data;
  8. using System.Windows.Media;
  9. namespace SWRIS.Converters
  10. {
  11. public class ConnectivityFaultToColorConverter : IMultiValueConverter
  12. {
  13. private static readonly SolidColorBrush OnlineBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00FF78"));
  14. private static readonly SolidColorBrush OfflineBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#7886B2"));
  15. private static readonly SolidColorBrush FaultBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF0000"));
  16. public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
  17. {
  18. if (values.Length < 2 || !(values[0] is bool isConnected) || !(values[1] is Dictionary<FaultType, FaultDataModel> faults))
  19. return OfflineBrush;
  20. if (!isConnected)
  21. return OfflineBrush;
  22. if (faults != null && faults.Any(f => f.Value != null)) // 检查非空故障
  23. return FaultBrush;
  24. return OnlineBrush;
  25. }
  26. public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
  27. {
  28. throw new NotImplementedException();
  29. }
  30. }
  31. }