using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using static Bro.Common.Helper.EnumHelper; namespace Bro.UI.Converter { /// /// 取反转换 /// public class InverseConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return !(bool)value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return !(bool)value; } } /// /// 设备状态转换 /// public class DeviceStateColorConvert : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DeviceState state = (DeviceState)value; return state.GetEnumSelectedColorString(); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } /// /// 布尔状态显示转换 /// public class CurrentStateConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return "LightBlue"; } else if ((bool)value == true) { return "LightGreen"; } else { return "LightGray"; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } /// /// 布尔状态显示转换 /// public class IndicatorStateConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return "Transparent"; } else if ((bool)value == true) { return "LightGreen"; } else { return "Red"; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } /// /// 布尔状态显示转换 /// public class IndicatorTextConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return "TBD"; } else if ((bool)value == true) { return "OK"; } else { return "NG"; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } [ValueConversion(typeof(float), typeof(float))] public class SimpleCalculationConvert : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { float input = System.Convert.ToSingle(value); string paraStr = parameter?.ToString(); if (!(paraStr == null || paraStr.Trim().Length <= 1)) { string opChar = paraStr[0].ToString(); float para = 0; if (Single.TryParse(paraStr.Substring(1), out para)) { switch (opChar) { case "+": input += para; break; case "-": input -= para; break; case "*": input *= para; break; case "/": input /= para; break; } } } return input; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } } }