ConnectivityFaultToColorConverter.cs 1.4 KB

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