12345678910111213141516171819202122232425262728293031323334 |
- 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) : IValueConverter
- {
- 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;
- }
- }
|