using InABox.WPF; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; namespace InABox.Wpf; public class FuncConverter(Func convert, Func? convertBack = null) : IValueConverter { public Func ConvertFunc { get; set; } = convert; public Func? ConvertBackFunc { get; set; } = convertBack; public object? Convert(object? value, Type targetType, object parameter, CultureInfo culture) { if(value is TIn tIn) { return ConvertFunc(tIn); } return null; } public object? ConvertBack(object? value, Type targetType, object parameter, CultureInfo culture) { if(value is TOut tOut && ConvertBackFunc is not null) { return ConvertBackFunc.Invoke(tOut); } return null; } }