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;
}
}
}