3 changed files with 16 additions and 76 deletions
@ -1,62 +0,0 @@ |
|||
using System; |
|||
using System.Globalization; |
|||
using Avalonia.Data.Converters; |
|||
|
|||
namespace Avalonia.Controls.Converters |
|||
{ |
|||
/// <summary>
|
|||
/// Converter that checks if an enum value is equal to the given parameter enum value.
|
|||
/// </summary>
|
|||
public class EnumValueEqualsConverter : IValueConverter |
|||
{ |
|||
/// <inheritdoc/>
|
|||
public object? Convert( |
|||
object? value, |
|||
Type targetType, |
|||
object? parameter, |
|||
CultureInfo culture) |
|||
{ |
|||
// Note: Unlike string comparisons, null/empty is not supported
|
|||
// Both 'value' and 'parameter' must exist and if both are missing they are not considered equal
|
|||
if (value != null && |
|||
parameter != null) |
|||
{ |
|||
Type type = value.GetType(); |
|||
|
|||
if (type.IsEnum) |
|||
{ |
|||
var valueStr = value?.ToString(); |
|||
var paramStr = parameter?.ToString(); |
|||
|
|||
if (string.Equals(valueStr, paramStr, StringComparison.OrdinalIgnoreCase)) |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
/* |
|||
// TODO: When .net Standard 2.0 is no longer supported the code can be changed to below
|
|||
// This is a little more type safe
|
|||
if (type.IsEnum && |
|||
Enum.TryParse(type, value?.ToString(), true, out object? valueEnum) && |
|||
Enum.TryParse(type, parameter?.ToString(), true, out object? paramEnum)) |
|||
{ |
|||
return valueEnum == paramEnum; |
|||
} |
|||
*/ |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public object? ConvertBack( |
|||
object? value, |
|||
Type targetType, |
|||
object? parameter, |
|||
CultureInfo culture) |
|||
{ |
|||
throw new System.NotImplementedException(); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue