2009-10-04 2 views
0

J'ai une liste déroulante que je veux lier à une liste d'objets datetime, mais je veux montrer les objets datetime au format court. Je suis assez sûr que j'ai besoin d'utiliser une certaine forme de modèle de données pour cela, mais je ne peux pas comprendre comment lier à la méthode ToShortTime de l'objet datetime dans le modèle de données.Liaison de données WPF à une liste d'objets datetime

Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

4

En supposant que vous utilisez .NET 3.0 ou 3.5 avec SP1, vous pouvez simplement utiliser le StringFormat pour spécifier le format, par exemple:

<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat='{}{0:t}'}" /> 

affiche l'heure de date avec le format de temps (» t le modificateur de format de date-heure standard, exactement le même que l'appel de DateTime.Now.ToString ("t")).

Edit: Si vous êtes déjà dans un modèle de données ayant un DateTime comme DataContext, il suffit d'utiliser:

<TextBlock Text="{Binding StringFormat='{}{0:t}'}" /> 
1

Vous pouvez définir la propriété Convertisseur sur la liaison. Implémentez IValueConverter pour effectuer la modification à une chaîne. Le MSDN docs pour IValueConverter l'utilise réellement comme exemple.