Bonjour,
je voudrais afficher dans un textBox une date qui est "bindé" vers un champ qui est lui même au format date.
Pour l'instant il m'affiche 15/3/2010 2:30:25 PM
Le But serait d'afficher 15/3/2010 14:30
Comment faire ? Un converter ?
Version imprimable
Bonjour,
je voudrais afficher dans un textBox une date qui est "bindé" vers un champ qui est lui même au format date.
Pour l'instant il m'affiche 15/3/2010 2:30:25 PM
Le But serait d'afficher 15/3/2010 14:30
Comment faire ? Un converter ?
Regarde du coté de StringFormat, dans ton binding ;)
http://karlshifflett.wordpress.com/2...ullable-types/
Si tu ne peux pas l'utiliser, alors un convertisseur fera l'affaire :)
Merci pour ta réponse,
Super le StringFormat et surtout tellement plus simple qu'un converter.
Malheureusement, je suis en Silverlight 3 et il semble que StringFormat ne soit pas supporté :cry:
Je vais donc partir vers un Converter.
J'ai un petit souci pour utiliser le Converter...
Le problème est de le référencer, quelqu'un peut-il m'aider.
Dans MonProjet, j'ai mis la classe suivante : DateTimeConverter.vb
qui contient:
Ensuite dans mon XML qui est une navigation page je mets:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Imports System.Windows.Data Public Class DateTimeConverter Implements 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 = value 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.ToString() Dim ResultDateTime As DateTime If DateTime.TryParse(StrValue, ResultDateTime) Then Return ResultDateTime End If Return value End Function End Class
Comment faire pour référencer DateTimeConverter?Code:<TextBox x:Name="txtSiOffre" Text="{Binding ContactTrigOfferDate, Converter={StaticResource DateTimeConverter}}" />
Comme expliqué plus haut, mon souci est bien de référencer mon converter dans une page de navigation, tous les exemples sont basés sur un UserControl..
en prenant exemple dans :
http://broux.developpez.com/articles...verlight/#L2-2
il m'est impossible de rajouter un
dansCode:xmlns:conv="clr-namespace:MonProjet.DateTimeConverter"
Code:
1
2
3
4
5
6
7
8 <navigation:Page x:Class="MonProjet.Contact" xmlns:riadata="clr-namespace:System.Windows.Data;assembly=System.Windows.Ria.Controls" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Ria.Controls" xmlns:MonProjetLocal="clr-namespace:MonProjet" xmlns:MonProjetWeb="clr-namespace:MonProjet.Web"
et puis, comment ajouter une ressource ?
<navigation.Resources>
n'existe pas
et donc comment faire un truc du style:
Code:
1
2
3<UserControl.Resources> <conv:String2UriConverter x:Key="String2UriConverter" /> </UserControl.Resources>
Cà compile, mais à l'exécution, je reçois:
Voici le code que j'ai dans ma page "Contact.xaml":Citation:
The Extender Provider failed to return an Extender for this object. Please correct before proceeding. (You might rename the current web.config and add a new one.)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <navigation:Page x:Class="MonProjet.Contact" ... xmlns:MonProjetLocal="clr-namespace:MonProjet" xmlns:MonProjetWeb="clr-namespace:MonProjet.Web" ... > <navigation:Page.Resources> <MonProjetLocal:DateTimeConverter x:Key="MyDateTimeConverter"/> </navigation:Page.Resources> ..... <TextBox x:Name="DateOffre" Text="{Binding ContactTrigOfferDate, Converter={StaticResource MyDateTimeConverter}}" IsEnabled="False"/> ...
Aucune idée. Au vue de l'erreur ça n'a rien à voir avec Silverlight.
Ok, c'est moi qui ai effacé mon webConfig par erreur !
Super :ccool: le converter fonctionne à merveille.
Merci pour ton aide.