Я нашел этот небольшой фрагмент кода в Интернете:
public abstract class ConverterExtension<T>: MarkupExtension, IValueConverter
where T: class, new()
{
private static T _converter = null;
public override Object ProvideValue(IServiceProvider serviceProvider)
{
return _converter ?? (_converter = new T());
}
public abstract Object Convert(Object value, Type targetType, Object parameter, CultureInfo culture);
public abstract Object ConvertBack(Object value, Type targetType, Object parameter, CultureInfo culture);
}
Он в основном делает 2 вещи:1. создает синглтон (очень удобно)2. Позволяет использовать конвертер без создания статического элемента управления (MarkupExtension
)
. Что мне интересно, так это то, что если я использую Prism v4 в качестве фреймворка, то это уже встроено.лучше использовать все инструменты, встроенные в Prism, чем писать похожий или дублирующий код.Я не очень знаком с Призмой, но я не смог найти ничего подобного.Ох, и у меня есть аналогичная функция для IMultiValueConverter
.