| 1234567891011121314151617181920212223242526272829 | 
							- using System.Globalization;
 
- using Avalonia.Data.Converters;
 
- using CommunityToolkit.Mvvm.ComponentModel;
 
- namespace InABox.Avalonia.Converters;
 
- public abstract class AbstractConverter<TIn, TOut> : ObservableObject, IValueConverter
 
- {
 
-     
 
-     protected abstract TOut? Convert(TIn? value, object? parameter = null);
 
-     protected virtual TIn? Deconvert(TOut? value, object? parameter = null)
 
-     {
 
-         return default;
 
-     }
 
-     
 
-     public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
 
-     {
 
-         var typed = value is TIn tin ? tin : default;
 
-         return Convert(typed, parameter);
 
-     }
 
-     public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
 
-     {
 
-         var typed = value is TOut tout ? tout : default;
 
-         return Deconvert(typed, parameter);
 
-     }
 
-     
 
- }
 
 
  |