この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

IValueConverter インターフェイス

カスタム ロジックをバインディングに適用する方法を提供します。

名前空間:  System.Windows.Data
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)

public interface IValueConverter

IValueConverter 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドConvert値を変換します。
パブリック メソッドConvertBack値を変換します。
このページのトップへ

値コンバーターをバインディングに関連付けるには、IValueConverter インターフェイスを実装するクラスを作成し、Convert メソッドと ConvertBack メソッドを実装します。 コンバーターは、データ型の変更、カルチャ情報に基づくデータ変換、その他の表示変更などを実行できます。 コンバーターの一般的なシナリオの例については、「データ バインディングの概要」の「データ変換」を参照してください。

値コンバーターは、カルチャに対応しています。 Convert メソッドと ConvertBack メソッドは、いずれもカルチャ情報を示す culture パラメーターを持っています。 変換に関連しないカルチャ情報については、カスタム コンバーターでそのパラメーターを無視できます。

Convert メソッドと ConvertBack メソッドには parameter というパラメーターもあります。これにより、コンバーターの同じインスタンスを別のパラメーターで使用できます。 たとえば、使用する入力パラメーターに基づいて別のデータ形式を生成する書式設定コンバーターを作成できます。 Binding クラスの ConverterParameter を使用すると、パラメーターを引数として Convert メソッドおよび ConvertBack メソッドに渡すことができます。

This example shows how to apply conversion to data that is used in bindings.

To convert data during binding, you must create a class that implements the IValueConverter interface, which includes the Convert and ConvertBack methods.

The following example shows the implementation of a date converter that converts the date value passed in so that it only shows the year, the month, and the day. When implementing the IValueConverter interface, it is a good practice to decorate the implementation with a ValueConversionAttribute attribute to indicate to development tools the data types involved in the conversion, as in the following example:


[ValueConversion(typeof(DateTime), typeof(String))]
public class DateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        DateTime date = (DateTime)value;
        return date.ToShortDateString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        string strValue = value as string;
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime))
        {
            return resultDateTime;
        }
        return DependencyProperty.UnsetValue;
    }
}


Once you have created a converter, you can add it as a resource in your Extensible Application Markup Language (XAML) file. In the following example, src maps to the namespace in which DateConverter is defined.


<src:DateConverter x:Key="dateConverter"/>


Finally, you can use the converter in your binding using the following syntax. In the following example, the text content of the TextBlock is bound to StartDate, which is a property of an external data source.


<TextBlock Grid.Row="2" Grid.Column="0" Margin="0,0,8,0"
           Name="startDateTitle"
           Style="{StaticResource smallTitleStyle}">Start Date:</TextBlock>
<TextBlock Name="StartDateDTKey" Grid.Row="2" Grid.Column="1" 
    Text="{Binding Path=StartDate, Converter={StaticResource dateConverter}}" 
    Style="{StaticResource textStyleTextBlock}"/>


The style resources referenced in the above example are defined in a resource section not shown in this topic.

.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
表示: