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 ?
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![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
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é
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <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
dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:conv="clr-namespace:MonProjet.DateTimeConverter"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<UserControl.Resources> <conv:String2UriConverter x:Key="String2UriConverter" /> </UserControl.Resources>
Et pourquoi ça ? Tu dois juste mettre le namespace hein, pas le nom de la classe.
et puis, comment ajouter une ressource ?
<navigation.Resources>
n'existe pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <navigation:Page.Resources>
Cà compile, mais à l'exécution, je reçois:
Voici le code que j'ai dans ma page "Contact.xaml":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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !
Superle converter fonctionne à merveille.
Merci pour ton aide.
Partager