バージョン

ValueToTextConverter プロパティ

テキストと値の間の変換で使用されるコンバーターを指定します。
シンタックス
'宣言
 
Public Property ValueToTextConverter As IValueConverter
public IValueConverter ValueToTextConverter {get; set;}
解説

'string' と ValueType の間の変換はデフォルトで内蔵の変換ロジックを使用して実行されます。ValueToDisplayTextConverter および ValueToTextConverter を設定して変換ロジックをオーバーライドできます。エディターが編集モードの時は ValueToTextConverter が使用されますが、エディターが編集モードではない時は ValueToDisplayTextConverter が使用されます。

注: エディターは、'string' 以外のタイプの値を編集できます。例えば、XamTextEditorDateTime のタイプの値を編集できます。ValueType プロパティを使用してエディターが編集する値のタイプを指定できます。.

デフォルトのビルトイン変換ロジックはほとんどの場合で十分ですが、ユーザー入力を値タイプ オブジェクトに変換するためにカスタム ロジックを提供するには、この機能を使用します。内蔵の変換ロジックがどのようにテキストをカスタム オブジェクト タイプに変換したらよいかが分からないカスタム オブジェクトを編集する場合に値の特定の側面を表すテキストで特定の文字の入力をサポートしたい場合、たとえば、'2k' の 'k' を 1000 に解釈させたい場合や、DateTime の編集時に明日の日付として +1d を解釈させたい場合などです。

注: 派生したエディターは ValueToTextConverter をサポートしないか、使用しない可能性があります。値およびテキストが選択された項目から取得される XamComboEditor などの値からテキストへの変換が本質的に実行されるエディターの場合、ValueToTextConverter をサポートしません。

使用例
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 );
	}
}
<igEditors:XamTextEditor x:Name="pointEditor" 
                                             
ValueType="{x:Type Point}"
                                             
>

    
<!--ValueToTextConverter gets used when in edit mode to convert value to
    text and text (user input) into value.
-->
    
<igEditors:XamTextEditor.ValueToTextConverter>
        
<local:MyPointConverter />
    
</igEditors:XamTextEditor.ValueToTextConverter>

    
<!--You can specify a different converter for display mode which gets
    used when not in edit mode. This converter only gets used for converting
    value to text.
-->
    
<igEditors:XamTextEditor.ValueToDisplayTextConverter>
        
<local:MyPointConverter />
    
</igEditors:XamTextEditor.ValueToDisplayTextConverter>
            
</igEditors:XamTextEditor>
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
参照