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 :

[ValidationRule] raise la premiere fois


Sujet :

Windows Presentation Foundation

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut [ValidationRule] raise la premiere fois
    voila j'utilise une validation rule pour tester si un repertoire existe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <TextBox BorderBrush="{DynamicResource WindowTitleColorBrush}"
                                     HorizontalAlignment="Stretch"
                                     TextWrapping="Wrap">
                                <TextBox.Text>
                                    <Binding Path="Rep"
                                             UpdateSourceTrigger="PropertyChanged">
                                        <Binding.ValidationRules>
                                            <FolderValidationRule />
                                        </Binding.ValidationRules>
                                    </Binding>
                                </TextBox.Text>
                            </TextBox>
    seulement au demarrage si dans rep je n'ai pas un repertoire valide je n'ai pas l'erreur ...
    comment peut on lancer automatiquement le valide du validation rule au demarrage

    merci
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    bon j'ai fait ca
    mais ca ne me plait qu'a moitié
    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
    33
    34
    35
    36
    37
    38
    39
      public class TextBoxValidationHelper
        {
            #region UpdateRule (ATTACHED)                
            public static bool GetUpdateRule(DependencyObject obj) { return (bool)obj.GetValue(UpdateRuleProperty); }
            public static void SetUpdateRule(DependencyObject obj, bool value) { obj.SetValue(UpdateRuleProperty, value); }
     
            // Using a DependencyProperty as the backing store for UpdateRule.  This enables animation, styling, binding, etc...
            public static readonly DependencyProperty UpdateRuleProperty =
                DependencyProperty.RegisterAttached(
                    "UpdateRule",
                    typeof(bool),
                    typeof(TextBoxValidationHelper),
                    // new PropertyMetadata(false)           
                    new FrameworkPropertyMetadata(false, new PropertyChangedCallback(UpdateRuleChanged))
                    // new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender , new PropertyChangedCallbackUpdateRuleChanged))
                    );
     
            private static void UpdateRuleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                TextBox control = d as TextBox;
                //control.Loaded += (ss, ee) =>
                //{
                //    BindingExpression be = control.GetBindingExpression(TextBox.TextProperty);
                //    if (be != null)
                //    {
                //        be.UpdateSource();
                //    }
                //};
                control.IsVisibleChanged += (ss, ee) =>
                {
                    BindingExpression be = control.GetBindingExpression(TextBox.TextProperty);
                    if (be != null)
                    {
                        be.UpdateSource();
                    }
                };
            }
            #endregion
        }
    usage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
         <TextBox BorderBrush="{DynamicResource WindowTitleColorBrush}"
                                     HorizontalAlignment="Stretch"
                                     TextBoxValidationHelper.UpdateRule="true"
                                     TextWrapping="Wrap">
                                <TextBox.Text>
                                    <Binding Path="Rep"
                                             UpdateSourceTrigger="PropertyChanged">
                                        <Binding.ValidationRules>
                                            <FolderValidationRule />
                                        </Binding.ValidationRules>
                                    </Binding>
                                </TextBox.Text>
                            </TextBox>
    en plus dans un tabcontrol ca marche que la premiere fois
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait ca marche tres bien dans un tabcontrol quand on rajoute
    <AdornerDecorator>
    et
    ValidatesOnTargetUpdated="True"
    sur la regle

    exemple :
    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
    <AdornerDecorator>
                        <TextBox x:Name="depot"
                                         BorderBrush="{DynamicResource WindowTitleColorBrush}"
                                         HorizontalAlignment="Stretch"
                                         TextBoxValidationHelper.UpdateRule="false"
                                         TextWrapping="Wrap">
                                    <TextBox.Text>
                                        <Binding Path="Depot"
                                                 UpdateSourceTrigger="PropertyChanged">
                                            <Binding.ValidationRules>
                                                <FolderValidationRule ValidatesOnTargetUpdated="True" />
                                            </Binding.ValidationRules>
                                        </Binding>
                                    </TextBox.Text>
                                </TextBox>
                 </AdornerDecorator>
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

Discussions similaires

  1. [POI / JExcelAPI][premiere fois] comment ça marche ?
    Par Regis.C dans le forum Documents
    Réponses: 13
    Dernier message: 25/11/2009, 10h01
  2. Getobject marche que la premiere fois
    Par iris15 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/04/2008, 13h28
  3. Premiere fois en DAO, probleme avec Findfirst
    Par Frenchguy dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/08/2007, 12h07
  4. configurer phpmyadmin premiere fois
    Par Someone86 dans le forum Installation
    Réponses: 1
    Dernier message: 24/07/2007, 22h52

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