XSDVisualizer/XSDVisualiser.Desktop/Converters/OptionalToBorderBrushConverter.cs

25 lines
870 B
C#

using System.Globalization;
using Avalonia.Data.Converters;
using Avalonia.Media;
using XSDVisualiser.Core;
namespace XSDVisualiser.Desktop.Converters;
public class OptionalToBorderBrushConverter : IValueConverter
{
private static readonly IBrush RequiredBrush = new SolidColorBrush(Color.FromRgb(0x33, 0x99, 0x33));
private static readonly IBrush OptionalBrush = new SolidColorBrush(Color.FromRgb(0xCC, 0x66, 0x33));
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Occurs occ)
// Optional if minOccurs == 0
return occ.Min == 0 ? OptionalBrush : RequiredBrush;
return RequiredBrush;
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}