WPFのIValueConverter実装のテンプレート
WPFのバインディングは非常に便利ですが、バインド先のプロパティとソースの型が一致しないことは多いものです。そんなときに必要なのが、値コンバーター(ValueConverter)です。
ValueConverterはIValueConverterインターフェースのConvert/ConvertBackメソッドを実装するだけ、です。が、ValueConversion属性も書かないといけないので、結構めんどくさいのです。というわけでなんのことはないですが、テンプレートを置いておきます。
スポンサーリンク
IValueConverterに関して
IValueConverterインターフェースや使い方に関しては▼の@ITの記事が大変参考になります。
データの表示と入力に必要な知識 - @IT
これまで紹介してきたサンプルは、いずれもString型のプロパティ値とDouble型のプロパティ値を同期するバインディングであったため、暗黙的な型変換によって、型の違いが自動的に解決されていた。...
テンプレート
コピペしてはっつけて、ほげほげをいじればOKです。ほんとはスニペットにしたほうがいいのでしょうけど、面倒なのでこれで。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Data; using System.Windows; namespace YourNamespace { [ValueConversion(typeof(sourceType), typeof(targetType))] public class ???To???Converter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return ほげほげ; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } } |
クラス名は最後にConverterとつけるほうがいいでしょう。私は変換前/後の型や値の名前などをToでくっつけて命名しています。BooleanToVisibilityConverterとかInt32ToBrushConverterとかそんな感じです。
最後までお読みいただきありがとうございました m(_ _)m
スポンサーリンク