Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird gezeigt, wie Sie die Konvertierung auf Daten anwenden, die in Bindungen verwendet werden.
Um Daten während der Bindung zu konvertieren, müssen Sie eine Klasse erstellen, die die IValueConverter Schnittstelle implementiert, die die Convert Und ConvertBack Methoden enthält.
Beispiel
Das folgende Beispiel zeigt die Implementierung eines Datumskonverters, der den übergebenen Datumswert konvertiert, sodass nur das Jahr, der Monat und der Tag angezeigt werden. Bei der Implementierung der IValueConverter Schnittstelle empfiehlt es sich, die Implementierung mit einem ValueConversionAttribute Attribut zu versehen, um den Entwicklungstools die an der Umwandlung beteiligten Datentypen anzugeben, wie im folgenden Beispiel gezeigt:
[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;
}
}
Public Class DateConverter
Implements System.Windows.Data.IValueConverter
Public Function Convert(ByVal value As Object,
ByVal targetType As System.Type,
ByVal parameter As Object,
ByVal culture As System.Globalization.CultureInfo) _
As Object Implements System.Windows.Data.IValueConverter.Convert
Dim DateValue As DateTime = CType(value, DateTime)
Return DateValue.ToShortDateString
End Function
Public Function ConvertBack(ByVal value As Object,
ByVal targetType As System.Type,
ByVal parameter As Object,
ByVal culture As System.Globalization.CultureInfo) _
As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Dim strValue As String = value
Dim resultDateTime As DateTime
If DateTime.TryParse(strValue, resultDateTime) Then
Return resultDateTime
End If
Return DependencyProperty.UnsetValue
End Function
End Class
Nachdem Sie einen Konverter erstellt haben, können Sie ihn als Ressource in Ihrer XAML-Datei (Extensible Application Markup Language) hinzufügen. Im folgenden Beispiel ordnet src dem Namespace zu, in dem DateConverter definiert ist.
<src:DateConverter x:Key="dateConverter"/>
Schließlich können Sie den Konverter in Ihrer Bindung mit der folgenden Syntax verwenden. Im folgenden Beispiel ist der Textinhalt des Objekts TextBlock an StartDate gebunden, bei dem es sich um eine Eigenschaft einer externen Datenquelle handelt.
<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 obigen Beispiel verwiesen wird, sind in einem nicht dargestellten Ressourcenabschnitt definiert, der in diesem Thema nicht gezeigt wird.
Siehe auch
.NET Desktop feedback