(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

IValueConverter-Schnittstelle

Aktualisiert: November 2007

Ermöglicht das Anwenden benutzerdefinierter Logik auf eine Bindung.

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)
public interface IValueConverter
public interface IValueConverter
public interface IValueConverter
Schnittstellen können in XAML nicht direkt implementiert werden. Informationen finden Sie unter Typen, die diese Schnittstelle implementieren.

Wenn Sie einem Wertkonverter eine Bindung zuordnen, erstellen Sie eine Klasse, mit der die IValueConverter-Schnittstelle implementiert wird, und implementieren Sie dann die Convert-Methode und die ConvertBack-Methode. Konverter können Daten eines Typs in einen anderen Typ ändern, Daten anhand von Kulturinformationen übersetzen und andere Darstellungsaspekte ändern. Beispiele für typische Konverterszenarios finden Sie unter Übersicht über Datenbindung in "Datenkonvertierung".

Wertkonverter sind kulturspezifisch. Sowohl die Convert-Methode als auch die ConvertBack-Methode verfügen über einen culture-Parameter, der die Kulturinformationen angibt. Wenn Kulturinformationen für die Konvertierung nicht relevant sind, können Sie den Parameter im benutzerdefinierten Konverter ignorieren.

Die Convert-Methode und die ConvertBack-Methode verfügen auch über den Parameter parameter, sodass Sie dieselbe Instanz des Konverters mit anderen Parametern verwenden können. Beispielsweise können Sie einen Formatierungskonverter schreiben, der verschiedene Datenformate anhand der verwendeten Eingabeparameter erstellt. Sie können mit dem ConverterParameter der Binding-Klasse einen Parameter als Argument an die Convert-Methode und die ConvertBack-Methode übergeben.

In diesem Beispiel wird gezeigt, wie die Konvertierung auf Daten angewendet wird, die in Bindungen verwendet werden.

Um Daten während einer Bindung zu konvertieren, müssen Sie eine Klasse erstellen, die die IValueConverter-Schnittstelle implementiert, die wiederum die Methoden Convert und ConvertBack einschließt.

Im folgenden Beispiel wird die Implementierung eines Datenkonverters gezeigt, der den übergebenen Datenwert so konvertiert, dass nur Jahr, Monat und Tag angezeigt werden. Beim Implementieren der IValueConverter-Schnittstelle sollten Sie die Implementierung mit einem ValueConversionAttribute-Attribut ergänzen, um den Entwicklungstools die Datentypen anzuzeigen, die in die Konvertierung einbezogen sind, wie im folgenden Beispiel:

[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.ToString();
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime))
        {
            return resultDateTime;
        }
        return value;
    }
}


Sobald Sie einen Konverter erstellt haben, können Sie ihn als Ressource zur Extensible Application Markup Language (XAML)-Datei hinzufügen. Im folgenden Beispiel wird dem Namespace, in dem DateConverter definiert ist, src zugeordnet.

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


Abschließend können Sie den Konverter in der Bindung mit der folgenden Syntax verwenden. Im folgenden Beispiel wird der Textinhalt für den TextBlock an StartDate gebunden; dabei handelt es sich um eine Eigenschaft einer externen Datenquelle.

<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}"/>


Die Stilressourcen, auf die im Beispiel oben verwiesen wird, werden im Ressourcenabschnitt des Beispiels definiert, das in diesem Thema nicht gezeigt wird. Das vollständige Codebeispiel, aus dem die obigen Codebeispiele stammen, finden Sie unter Demo für die Datenbindung.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.