AutoCatAvalonia/AutoCat/Extensions/TernaryExtension.cs
2024-05-06 01:44:57 +03:00

27 lines
718 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(string path) : MarkupExtension
{
public string Path { get; set; } = path;
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);
}
}