27 lines
718 B
C#
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);
|
|
}
|
|
} |