public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values == null || values.Contains(null) || values.Contains(DependencyProperty.UnsetValue)) { return(0); } if (!(values[0] is ParamerusPMBusDevice) || !(values[1] is LogicLevelResult)) { return(0); } ParamerusPMBusDevice dev = values[0] as ParamerusPMBusDevice; LogicLevelResult stat_control_line = dev.ControlLine; if (!stat_control_line.Success) { return(0); } if (stat_control_line.Level == LogicLevel.Low) { return(0); } else { return(1); } }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Contains(null) || values.Contains(DependencyProperty.UnsetValue)) { return(Brushes.Red); } LogicLevelResult res = values[1] as LogicLevelResult; if (!res.Success || res.Level == LogicLevel.Low) { return(Brushes.Red); } bool isWarningBitSet = false; for (int i = 2; i < values.Length; i++) { BitStatus bs = (BitStatus)values[i]; switch (bs) { case BitStatus.Fault: return(Brushes.Red); case BitStatus.Warning: isWarningBitSet = true; break; default: break; } } if (isWarningBitSet) { return(Brushes.Orange); } return(Brushes.Green); }