AutoCatAvalonia/AutoCat/Extensions/TernaryExtension.cs
2023-07-19 00:42:11 +03:00

31 lines
741 B
C#

using System;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.MarkupExtensions;
namespace AutoCat.Extensions;
public class TernaryExtension : MarkupExtension
{
public TernaryExtension()
{
}
public string Path { get; set; }
public object True { get; set; }
public object False { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new ReflectionBindingExtension(Path)
{
Mode = BindingMode.OneWay,
Converter = new FuncValueConverter<bool, object>(e => e ? True : False)
};
return binding.ProvideValue(serviceProvider);
}
}