namespace GDNXFD.Alert.Config.Converters
{
using System;
using System.Windows;
using System.Windows.Data;
///
/// enum to bool converter
///
public class EnumToBooleanConverter : IValueConverter
{
///
/// Convert a travel type to bool.
///
///
///
///
///
///
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
if (Enum.IsDefined(value.GetType(), value) == false)
return DependencyProperty.UnsetValue;
object parameterValue = Enum.Parse(value.GetType(), parameterString);
return parameterValue.Equals(value);
}
return null;
}
///
/// Convert back
///
///
///
///
///
///
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && (bool)value)
{
string parameterString = parameter as string;
if (!string.IsNullOrEmpty(parameterString))
return Enum.Parse(targetType, parameterString);
}
return DependencyProperty.UnsetValue;
}
}
}