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;
- }
- }
|