using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using System.Windows.Media; namespace FurnaceUI.Converter { public class IsMultiSavedConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length == 2) { if (values[0] is string) { double tempValue = double.NaN; double.TryParse((string)values[0], out tempValue); if (tempValue != double.NaN && Math.Abs(tempValue) < 0.000001) { return true; } else { if (values[1] is bool) { if ((bool)values[1]) return true; else return false; } } } if (values[1] is bool) { if ((bool)values[1]) return true; else return false; } } return true; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } public class IsMultiSavedColorConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length == 2) { if (values[0] is string) { double tempValue = double.NaN; double.TryParse((string)values[0], out tempValue); if (tempValue != double.NaN && Math.Abs(tempValue) < 0.000001) { return new SolidColorBrush(Colors.Transparent); } else { if (values[1] is bool) { if ((bool)values[1]) return new SolidColorBrush(Colors.Transparent); else return new SolidColorBrush(Colors.Yellow); } } } if (values[1] is bool) { if ((bool)values[1]) return new SolidColorBrush(Colors.Transparent); else return new SolidColorBrush(Colors.Yellow); } } return new SolidColorBrush(Colors.Transparent); } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }