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

Windows Presentation Foundation Discussion :

Binding validation erreur malgrés ValidatesOnExceptions=True


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut Binding validation erreur malgrés ValidatesOnExceptions=True
    Bonjour, j'ai un problème avec la validation de donnée avec un binding simple d'une classe.
    J'ai simplifié un maximum le code que je vous montre :

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Class Personne
     
        Private _Nom As String
        Public Property Nom As String
            Get
                Return _Nom
            End Get
            Set(ByVal value As String)
                _Nom = value
                If value.Length > 7 Then
                    Throw New ArgumentException("Trop  de 7 car")
                End If
             End Set
        End Property

    Dans le xaml

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TextBox Height="53" Name="TextBox1" Width="248" Text="{Binding Path=Nom, ValidatesOnExceptions=True}" />

    Que je rajoute Implements INotifyPropertyChanged ou IEditableObject ne change rien à l'erreur.

    Si je depasse les 7 caractères dans la textbox j'ai une erreur :

    L'exception System.ArgumentException n'a pas été gérée par le code utilisateur
    Message=Trop de 7 car
    Source=Test et Essais
    StackTrace:
    à WpfApplication1.Personne.set_Nom(String value) dans C:\Users\bip\Documents\Visual Studio 2010\Projects\Test et Essais\Test et Essais\MainWindow.xaml.vb:ligne 29
    InnerException:

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as l'erreur en débug je suppose ? Du coup, si tu appuies sur F5, tu devrais retourner à ton application et voir le cadre rouge apparaitre

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut
    Super Merci !!!

    En plus cette méthode , provient de ton livre.
    J'avais fais avec une autre méthode mais je trouvais vraiment dommage de ne pas trouver pourquoi mon code ne fonctionnait pas.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <DataGridTextColumn.Binding >
         <Binding Path="Condt" UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                       <local:TailleString  MaxLenght="10"/>
                 </Binding.ValidationRules>
          </Binding>
    </DataGridTextColumn.Binding >


    Code vb.net : 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
     
    Imports System.Text
    Imports System.Globalization
     
     
    Friend Class TailleString
        Inherits ValidationRule
        Property MaxLenght As Integer
     
        Public Overrides Function Validate(ByVal value As Object, ByVal cultureInfo As CultureInfo) As ValidationResult
            If value.ToString.Length > MaxLenght Then
                Return New ValidationResult(False, "La longueur de la chaine est suppérieure à " & MaxLenght & "!")
            Else
                Return ValidationResult.ValidResult
            End If
        End Function
    End Class


    Encore merci.

    PS : Il est bien ton livre mais tout le code est en C# et pas en VB.net, donc il faut que je me tappe toutes les conversions !

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

Discussions similaires

  1. [Validator] erreur client+serveur lors de la validation
    Par PoichOU dans le forum Struts 1
    Réponses: 18
    Dernier message: 11/06/2007, 11h33
  2. [W3C Validator] Erreur de doctype
    Par darkphenx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/11/2006, 11h56
  3. Réponses: 17
    Dernier message: 24/07/2006, 17h23
  4. [Validator] Erreur sur validation d'url
    Par fif10 dans le forum Struts 1
    Réponses: 8
    Dernier message: 24/06/2006, 21h26
  5. [validation]Erreur format texte depuis BDD
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2006, 19h49

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