using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; namespace Tango.SharedUI.Converters { public class EnumToItemsSourceConverter : IValueConverter { public class EnumValue { public Object Value { get; set; } public String DisplayName { get; set; } public override string ToString() { return DisplayName; } } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Type result = value as Type; if (parameter != null && parameter.ToString() == "false") { return Enum.GetValues(result); } else { return Enum.GetValues(result).Cast().Select(e => new EnumValue() { Value = e, DisplayName = (e as Enum).ToDescription() }).ToList(); } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if(value is EnumValue) { return (value as EnumValue).Value; } return value; } } }