comparison MetroWpf/MetroWpf.Xaml/Converters/EnumBooleanConverter.cs @ 15:060f02cd4591

Initial commit, pre airport work
author stevenh7776 stevenhollidge@hotmail.com
date Mon, 12 Mar 2012 23:05:21 +0800
parents
children
comparison
equal deleted inserted replaced
14:741981715d94 15:060f02cd4591
1 //http://stackoverflow.com/questions/397556/wpf-how-to-bind-radiobuttons-to-an-enum
2
3 using System;
4 using System.Windows;
5 using System.Windows.Data;
6
7 namespace MetroWpf.Xaml.Converters
8 {
9 [ValueConversion(typeof(Enum), typeof(Boolean))]
10 public class EnumBooleanConverter : IValueConverter
11 {
12 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
13 {
14 var parameterString = parameter as string;
15 if (parameterString == null)
16 return DependencyProperty.UnsetValue;
17
18 if (Enum.IsDefined(value.GetType(), value) == false)
19 return DependencyProperty.UnsetValue;
20
21 object parameterValue = Enum.Parse(value.GetType(), parameterString);
22
23 return parameterValue.Equals(value);
24 }
25
26 public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
27 {
28 var parameterString = parameter as string;
29 if (parameterString == null)
30 return DependencyProperty.UnsetValue;
31
32 return Enum.Parse(targetType, parameterString);
33 }
34 }
35 }