39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using Microsoft.UI.Xaml;
|
|
using Microsoft.UI.Xaml.Data;
|
|
|
|
namespace RustTools.Helpers;
|
|
|
|
public class EnumToBooleanConverter : IValueConverter
|
|
{
|
|
public EnumToBooleanConverter()
|
|
{
|
|
}
|
|
|
|
public object Convert(object value, Type targetType, object parameter, string language)
|
|
{
|
|
if (parameter is string enumString)
|
|
{
|
|
if (!Enum.IsDefined(typeof(ElementTheme), value))
|
|
{
|
|
throw new ArgumentException("ExceptionEnumToBooleanConverterValueMustBeAnEnum");
|
|
}
|
|
|
|
var enumValue = Enum.Parse(typeof(ElementTheme), enumString);
|
|
|
|
return enumValue.Equals(value);
|
|
}
|
|
|
|
throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, string language)
|
|
{
|
|
if (parameter is string enumString)
|
|
{
|
|
return Enum.Parse(typeof(ElementTheme), enumString);
|
|
}
|
|
|
|
throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
|
|
}
|
|
}
|