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
|
{
|
/// <summary>
|
/// 取反转换
|
/// </summary>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 设备状态转换
|
/// </summary>
|
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();
|
}
|
}
|
|
/// <summary>
|
/// 布尔状态显示转换
|
/// </summary>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 布尔状态显示转换
|
/// </summary>
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 布尔状态显示转换
|
/// </summary>
|
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;
|
}
|
}
|
}
|