1234567891011121314151617181920212223242526272829303132333435 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Data;
- namespace FWindSoft.Wpf
- {
- public class EnumToTComboxItemConvert : IValueConverter
- {
- public static EnumToTComboxItemConvert Instance = new EnumToTComboxItemConvert();
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- Type sourceType = value.GetType();
- if (!sourceType.IsEnum)
- return value;
- var enumerable = parameter as IEnumerable<Object>;
- if (enumerable == null)
- return value;
- var comboxItems = enumerable.OfType<TComboxItem>();
- return comboxItems.FirstOrDefault(i => System.Convert.ChangeType(i.Value, sourceType).Equals(System.Convert.ChangeType(value, sourceType)));
- }
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- TComboxItem item = value as TComboxItem;
- if (item == null)
- return value;
- return System.Convert.ChangeType(item.Value, targetType);
- }
- }
- }
|