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 :

Textbox - Validation rule


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 56
    Par défaut Textbox - Validation rule
    Bonjour,

    J'ai une textbox bindée sur un champ TimeSpan. J'utilise un converter pour passer du TimeSpan à un string (hh:mm) et vis versa pour afficher/récupérer la bonne valeur.

    J'aimerais pouvoir limiter au maximum le risque d'entrer des valeurs fausses (du genre 12,4, ab:00, etc ...) mais seulement des temps au format hh:mm.

    Je voulais utiliser une validation rule avec un regex à l'intérieur, mais je n'arrive pas à corriger efficacement le problème (je peux quand même entrer n'importe quoi)

    Est-ce que quelqu'un pourrait m'aider à résoudre ce problème ?

    Dans mon xaml, j'appelle ma validation rule comme ceci :
    Code xaml : 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
     
    <TextBox Name="tbxEstimatedTaskTimespan" >
    	<TextBox.Text>
    		<Binding Path="EstimatedOPTimespan" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" >
    			<Binding.ValidationRules>
    				<local:HoursValidationRule ValidatesOnTargetUpdated="True" />
    			</Binding.ValidationRules>
    		</Binding>
    	</TextBox.Text>
    	<TextBox.Style>
    		<Style TargetType="{x:Type TextBox}">
    			<Style.Triggers>
    				<Trigger Property="Validation.HasError" Value="True">
    					<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
    					<Setter Property="Background" Value="Red"/>
    					<Setter Property="Text" Value=""/>
    				</Trigger>
    			</Style.Triggers>
    		</Style>
    	</TextBox.Style>
    </TextBox>

    Ma validation rule ressemble à quelquechose comme ça :
    Code c# : 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
     
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
    	var s = value as string;
    	if (string.IsNullOrEmpty(s))
    	{
    		return new ValidationResult(false, "Field cannot be blank");
    	}
    	//var match = Regex.Match(s, @"^\d{4}:d{2}$");
    	var match = Regex.Match(s, @"/^([1-9]|1[0-2]):[0-5]");
    	if (!match.Success)
    	{
    		return new ValidationResult(false, "Field must be in hh:mm format");
    	}
            return new ValidationResult(true, null);
    }

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    Salut Kanetsugu,

    Ce que tu voudrais, c'est lorsque l'utilisateur tape un "a" (qui correspond à une erreur), ce dernier ne s'affiche pas ?
    Tu peux travailler directement l'event KeyDown de ta TextBox et faire un Handled dessus en cas de soucsi

    Car en fait, ta règle de validation permet de signaler que la saisie est une erreur (entourage rouge), donc faut bien l'afficher pour montrer qu'il y a une erreur...

    Enfin tout dépend de comment tu vois la manière de gérer

    @+

Discussions similaires

  1. [ validator ] validator-rules.xml
    Par hocinema dans le forum Spring Web
    Réponses: 0
    Dernier message: 07/08/2008, 10h22
  2. Désactivation d'une Validation Rule
    Par ac264 dans le forum IHM
    Réponses: 1
    Dernier message: 10/10/2007, 17h47
  3. ActionErrors vide pour mes validator-rules
    Par anayathefirst dans le forum Struts 1
    Réponses: 11
    Dernier message: 24/01/2007, 01h19
  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. saisie de formule dans la rubrique "validation rule&quo
    Par rosacatic dans le forum Access
    Réponses: 4
    Dernier message: 31/01/2006, 19h37

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