'宣言 Public Property ValueToDisplayTextConverter As IValueConverter
public IValueConverter ValueToDisplayTextConverter {get; set;}
'string' と ValueType の間の変換はデフォルトで内蔵の変換ロジックを使用して実行されます。ValueToDisplayTextConverter および ValueEditor.ValueToTextConverter を設定してデフォルト変換ロジックをオーバーライドできます。エディターが編集モードの時は ValueToTextConverter が使用されますが、エディターが編集モードではない時は ValueToDisplayTextConverter が使用されます。
注: エディターは、'string' 以外のタイプの値を編集できます。例えば、XamTextEditor は DateTime のタイプの値を編集できます。System.ValueType プロパティを使用してエディターが編集する値のタイプを指定できます。.
ほとんどの場合、デフォルト変換ロジックは ValueEditor.FormatProvider および ValueEditor.Format フォーマット プロパティと共にさまざまなフォーマット機能の提供で十分です。
ビルトインのデフォルト変換ロジックは殆どの場合で十分ですが、値を表示するテキストに変換するためにカスタム ロジックを提供するには、この機能を使用します。これが必要とされる例は、今日や昨日の日付のような値をそれぞれ 'Tomorrow' と 'Yesterday' という単語で提示したい場合、または ValueEditor.FormatProvider および ValueEditor.Format プロパティ設定を使用して、指定できなかった任意の種類のカスタム フォーマッティングを適用する場合です。
public class MyPointConverter : IValueConverter { // Convert gets called to convert value to text. public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) { ValueEditor editor = parameter as ValueEditor; if ( value is Point && targetType == typeof( string ) ) value.ToString( ); return Infragistics.Windows.Utilities.ConvertDataValue( value, targetType, editor.FormatProvider, editor.Format ); } // ConvertBack gets called to convert user input into to value. public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) { string text = null != value ? value.ToString( ) : string.Empty; return Point.Parse( text ); } }
Public Class MyPointConverter Implements IValueConverter ' Convert gets called to convert value to text. Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert Dim editor As ValueEditor = DirectCast(parameter, ValueEditor) If TypeOf value Is Point AndAlso targetType Is GetType(String) Then value.ToString() End If Return Infragistics.Windows.Utilities.ConvertDataValue(value, targetType, editor.FormatProvider, editor.Format) End Function ' ConvertBack gets called to convert user input into to value. Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack Dim text As String = String.Empty If Not Nothing Is value Then text = value.ToString() End If Return Point.Parse(text) End Function End Class