| 1234567891011121314151617181920212223242526272829303132333435 | 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<TIn, TOut>(Func<TIn, TOut> convert, Func<TOut, TIn>? convertBack = null) : IValueConverter<TIn, TOut>{    public Func<TIn, TOut> ConvertFunc { get; set; } = convert;    public Func<TOut, TIn>? 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;    }}
 |