using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Windows.Data; using System.Windows.Media; using System.Windows; using Aitex.Core.RT.Log; namespace Aitex.Core.UI.Converters { public class LineColorConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { Color color = (Color)value; return new SolidColorBrush(color); } catch (Exception ex) { LOG.Write(ex); } return Brushes.Black; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { Brush brush = (SolidColorBrush)value; Color color = (Color)ColorConverter.ConvertFromString(brush.ToString()); return color; } catch (Exception ex) { LOG.Write(ex); } return Colors.Black; } } public class enum2BoolConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { if (0 == (int)value) return true; return false; } catch (Exception ex) { LOG.Write(ex); } return false; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } public class bool2VisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { if ((bool)value) return Visibility.Visible; return Visibility.Hidden; } catch (Exception ex) { LOG.Write(ex); } return Visibility.Hidden; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } public class bool2VisibilityConverter2 : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { if ((bool)value) return Visibility.Visible; return Visibility.Collapsed; } catch (Exception ex) { LOG.Write(ex); } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } public class Visibility2boolConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { Visibility vi = (Visibility)value; if (vi == Visibility.Visible) return true; return false; } catch (Exception ex) { LOG.Write(ex); } return true; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { bool isChecked = (bool)value; if (isChecked) return Visibility.Visible; return Visibility.Hidden; } catch (Exception ex) { LOG.Write(ex); } return Visibility.Visible; } } public class RolloverDataTimeConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value != null) { DateTime dt; var isSucc = DateTime.TryParse(value.ToString(), out dt); if (isSucc) return string.Format("{0}{1}{2}", " 【", dt.ToString("yyyy/MM/dd HH:mm:ss"), "】 "); } return "N/A"; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } public class BoolToValueConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return null; return ((bool)value) ? parameter : DependencyProperty.UnsetValue; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return null; return object.Equals(value, parameter); } } public class RadioBoolToIntConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int integer = (int)value; if (integer == int.Parse(parameter.ToString())) return true; else return false; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return parameter; } } public class FlowConverterForWeiQiMultiBinding : IMultiValueConverter { #region IMultiValueConverter 成员 public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string str_Result = string.Empty; bool isOpen = false; for (int i = 0; i < values.Length; i++) { bool.TryParse(values.GetValue(i) + "", out isOpen); if (isOpen == false) return isOpen; } return true; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion } /// /// 其中有一项为true就是true /// public class FlowConverterForAllTrueMultiBinding : IMultiValueConverter { #region IMultiValueConverter 成员 public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string str_Result = string.Empty; bool isOpen = false; for (int i = 0; i < values.Length; i++) { bool.TryParse(values.GetValue(i) + "", out isOpen); if (isOpen == true) return isOpen; } return false; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion } /// /// 第一项false则关闭,后面的只要有true就打开 /// public class FlowConverterFirstFalseMultiBinding : IMultiValueConverter { #region IMultiValueConverter 成员 public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (values.Length < 2) return false; bool isOpen = false; bool.TryParse(values.GetValue(0) + "", out isOpen); if (!isOpen) return false; isOpen = false; for (int i = 1; i < values.Length; i++) { bool.TryParse(values.GetValue(i) + "", out isOpen); if (isOpen == true) return true; } return false; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion } }