IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Changer message affiché (validationSummary)


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut Changer message affiché (validationSummary)
    Bonjour,

    J'ai un problème : dans les mutateurs de mes propriétés, je lève des exceptions quand l'entrée n'est pas dans le format attendu.

    Mais je ne comprend pas pourquoi le message dans mon excepetion n'est pas utilisé. A la place, j'ai un "Le format de l'entrée n'est pas valide".

    Voici la propriété et l'erreur dans son mutateur :
    Code vb : 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
    33
    34
    35
    36
    37
     
    	Private _Ordre As Integer = 1
    	Public Property Ordre() As Integer
    		Get
    			Return _Ordre
    		End Get
    		Set(ByVal value As Integer)
    			If value < 1 Then
    				Throw New Exception("L'ordre d'exécution doit être supérieur à 0.")
    			End If
     
    			_Ordre = value
    			RaisePropertyChanged("Ordre")
    		End Set
    	End Property
     
    ' Au clic sur le bouton valider :
    Private Function ValiderDonnees() As Boolean
     
    		If _ListeErreurs Is Nothing Then
    			_ListeErreurs = New List(Of ValidationSummaryItem)
    		Else
    			_ListeErreurs.Clear()
    		End If
     
    		' On recharge les erreurs remontées par les property car on vient de les éffacer.
    		For Each element As TextBox In HelperWidget.FindVisualChilds(Of TextBox)(cc_regleCompl)
    			If Not TypeOf element Is Telerik.Windows.Controls.PickerTextBox AndAlso element.IsEnabled Then
    				element.GetBindingExpression(TextBox.TextProperty).UpdateSource()
    			End If
    		Next
     
    		If String.IsNullOrEmpty(Libelle) Then
    			_ListeErreurs.Add(New ValidationSummaryItem With {.MessageHeader = "Libellé", .Message = "Veuillez renseigner le libellé."})
    		End If
    ' etc
    End function

    (note : vous avez vu ça ? j'ai découvert la balise Code=VB !!! )

    Et voici le xaml :
    Code xml : 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
     
    <TextBlock Text="Ordre d'utilisation"
    			Grid.Row="1"
    			Grid.Column="0" />
    <TextBox Text="{Binding Ordre, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True}"
    			TextAlignment="Right"
    			Grid.Row="1"
    			Grid.Column="1" />
    <!-- etc etc etc -->
    <vs:ValidationSummary x:Name="vs_Erreurs"
    			Header="Impossible de valider la subvention complémentaire"
    			ScrollViewer.VerticalScrollBarVisibility="Auto"
    			MaxHeight="200"
    			Grid.Row="8"
    			Grid.Column="0"
    			Grid.ColumnSpan="3" />

    Or je souhaiterai afficher le message de mon erreur
    Pour info, ça fonctionnait avant que je place le NotifyOnValidationError=True

    Ci-joint, la capture d'écran.
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Par défaut
    Pour info, ça fonctionnait avant que je place le NotifyOnValidationError=True
    Donc, si je ne me trompe pas, l'erreur doit se produire, au moment ou tu ajoutes ton erreur à ta liste d'erreur.

    Est tu bien certains que l'objet est bien défini par seulement 2 strings? Tu as essayé en ne passant qu'une seule string à cet objet? (je ne connais pas bien le VB, donc je ne suis pas sur de la définition de cet objet).

    Voir la définition de la classe ValidationSummaryItem

    3 constructeurs : 1 sans arguments, 1 avec 1 argument, et 1 avec 5 arguments.

    Le problème vient peut être de là.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut
    Bonjour Dynamès. Merci de ta réponse ça réchauffe le coeur de savoir que la rubrique silverlight attire encore quelques âmes chaleureuse

    Alors je ne pense pas que le problème vient de là car un ValidationSummaryItem possède 2 constructeurs possibles :

    New()

    et New(byval message as String, byval messageHeader as String)

    Je viens de tester en ôtant mon code d'ajout manuel.

    De plus, sans même cliquer sur le bouton valider, lorsque je sort du textbox qui est bindé à ma propriété Ordre, l'erreur est levée et le message qui s'affiche n'est pas celui spécifié dans mon throw Exception("mon message").

    Je cherche encore désespérément... Mais un grand merci pour ta lecture et l'intérêt portée à ma demande.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut
    J'ai trouvé :O

    Le problème venait que la validation de null (même en changeant le type de ma propriété Ordre en Integer?) déclenchait une autre erreur qui doit être catché en amont.

    Du coup pour pallier au problème, voici ce que j'ai du faire :

    Code VB : 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
     
    	Private _Ordre As Integer = 1
    	Public Property Ordre() As String
    		Get
    			Return _Ordre.ToString()
    		End Get
    		Set(ByVal value As String)
    			If Integer.TryParse(value, _Ordre) Then
    				If _Ordre < 1 Then
    					Throw New Exception("L'ordre d'exécution doit être supérieur à 0.")
    				End If
    			Else
    				Throw New Exception("L'ordre d'exécution est obligatoire et doit être supérieur à 0.")
    			End If
     
    			RaisePropertyChanged("Ordre")
    		End Set
    	End Property

    encore merci de ton aide !

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 46
    Par défaut
    Citation Envoyé par Kikuts Voir le message
    Bonjour Dynamès. Merci de ta réponse ça réchauffe le coeur de savoir que la rubrique silverlight attire encore quelques âmes chaleureuse
    N'ayant pas trop de succès dans mes questions je comprend ce que tu veux dire.
    Donc j'en profite juste pour te saluer
    J'ai bossé sur des vieilles technos qui meurent moins vite que SL, quel gâchis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/06/2011, 15h24
  2. Réponses: 10
    Dernier message: 02/04/2007, 10h42
  3. message affiché pendant quelques secondes
    Par kalou26 dans le forum C++Builder
    Réponses: 48
    Dernier message: 16/06/2006, 11h36
  4. changer et afficher une variable en fonction d'un select
    Par psychoBob dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 22/11/2005, 08h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo