私はウェブ上でこの小さなコードスニペットを見つけました:
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に組み込まれているツールを使用したいと思います。私はPrismにあまり詳しくありませんが、そこにはこのようなものは見つかりませんでした。ああ、私は。に対して同様の機能を持っていますIMultiValueConverter。