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 :

[WPF][C#] Validation Rule avec Binding


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut [WPF][C#] Validation Rule avec Binding
    Bonjour,

    Je souhaite crée une ValidationRule dont les paramètres sont Bindés, comme ceci :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <local:MinMaxValidationRule  
         Minimum="{Binding RelativeSource={ 
                                         RelativeSource FindAncestor,        
                                         AncestorType=local:IntegerTextBox,  
                                         AncestorLevel=1},  
                                         Path=Min}" 
        Maximum="{Binding RelativeSource={ 
                                         RelativeSource FindAncestor, 
                                         AncestorType=local:IntegerTextBox,  
                                         AncestorLevel=1},  
                                         Path=Max}"/> 
    </local:MinMaxValidationRule>

    Ce morceaux de code est placé dans le style d'un control personnalisé nommé "IntegerTextBox".

    je souhaite donc utiliser ma nouvelle Textbox comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <my:IntegerTextBox [...] Min="12" Max="27"/>
    Mais étant donné qu'une validation rule ne dépent pas de Dependancy object, je ne peut pas crée de dependancy property (propdp) et donc je ne peut pas effectué le binding ci-dessus.

    j'ai donc créé une classe dérivée de Dependancy object que j'ai instancié dans MinMaxValidationRule , puis j'ai effectué le binding sur les propdp de cette instance:

    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
    <local:MinMaxValidationRule> 
       <local:MinMaxValidationRule.ValidRange> 
          <local:Int64RangeChecker  
              Minimum="{Binding RelativeSource={ 
                                              RelativeSource FindAncestor,        
                                              AncestorType=local:IntegerTextBox,  
                                              AncestorLevel=1},  
                                              Path=Min}" 
             Maximum="{Binding RelativeSource={ 
                                              RelativeSource FindAncestor, 
                                              AncestorType=local:IntegerTextBox,  
                                              AncestorLevel=1},  
                                              Path=Max}"/> 
       </local:MinMaxValidationRule.ValidRange> 
    </local:MinMaxValidationRule>

    mais mon binding ne marche pas.
    Pourquoi ne pourrais-je pas récupérer les valeurs définies dans ma TextBox ?

    [EDIT] A savoir que lorsque je met les valeurs en dur directement dans ma Validation Rule (pour le test car ce n'est pas le comportement recherché) ça marche :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <local:MinMaxValidationRule> 
       <local:MinMaxValidationRule.ValidRange> 
          <local:Int64RangeChecker  
              Minimum="12" 
             Maximum="25"/> 
       </local:MinMaxValidationRule.ValidRange> 
    </local:MinMaxValidationRule>

    merci d'avance,

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par thlac Voir le message
    mais mon binding ne marche pas.
    Pourquoi ne pourrais-je pas récupérer les valeurs définies dans ma TextBox ?
    Parce que la ValidationRule ne fait pas partie de l'arbre visuel, donc ton objet Int64RangeChecker non plus, donc le FindAncestor ne peut pas marcher...

    A mon avis ça va être compliqué de gérer ça avec une ValidationRule. Mets plutôt ça dans le code de ton contrôle IntegerTextBox.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    Oui c'est ce que je vais faire merci beaucoup.

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

Discussions similaires

  1. Problème avec binding image wpf c#
    Par cocobelle89 dans le forum C#
    Réponses: 2
    Dernier message: 23/04/2013, 11h44
  2. [WPF] Question de Layout avec binding.
    Par zeavan dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 14/02/2009, 14h41
  3. [WPF] Système de validation indépendant du binding
    Par tomlev dans le forum Contribuez
    Réponses: 0
    Dernier message: 22/09/2008, 01h46
  4. Problème avec validator-rules.xml
    Par steffy_29 dans le forum Struts 1
    Réponses: 1
    Dernier message: 08/12/2006, 10h51
  5. [XSD][xerces] validation xml avec un xsd
    Par chand_bing dans le forum Valider
    Réponses: 2
    Dernier message: 05/02/2004, 20h21

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