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 :

Nettoyer AutoCompleteBox Silverlight 3


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut Nettoyer AutoCompleteBox Silverlight 3
    Bonjour tout le monde.

    J'ai un petit souci, je voudrais nettoyer le SearchText après une validation sur une AutoCompleteBox, le problème c'est que je ne peux pas setter cette valeur puisqu'elle est en read-only.

    Le ValueMemberBinding est bindé sur une propriété string nommé "Label", faisant partie d'un objet "MyObject", dont le SelectedItem est bindé dessus.

    XAML:
    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
     
     <input:AutoCompleteBox x:Name="AutoCompleteBox1" Grid.Column="1" Grid.Row="4" ItemsSource="{Binding CollectionLabel}"                                
     
    DropDownClosed="AutoCompleteBoxAuxiliary_DropDownClosed"
                                       Populating="AutoCompleteBoxAuxiliary_Populating"
                                       MinimumPopulateDelay="200" MinimumPrefixLength="1"
                                       ValueMemberBinding="{Binding Label}"
                                       SelectedItem="{Binding MyObject,Mode=TwoWay}"
                                       Margin="3">
     
                            <input:AutoCompleteBox.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Label}"></TextBlock>
                                </DataTemplate>
                            </input:AutoCompleteBox.ItemTemplate>
     
                        </input:AutoCompleteBox>
    Classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public class MyObjectClass
    {
     
    public string Label{get;set;}
    }
    Méthode de nettoyage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
    public void Clean()
    {
     
    //Je nettoie l'objet, ce qui nettoie bien le texte de l'AutoCompleteBox, mais qui laisse le SearchText...
    this.MyObject = null;
     
    }
    Merci de votre aide .

  2. #2
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    J'ai trouvé comment faire.

    Il suffit de récupérer l'ItemTemplate de l'AutoCompleteBox, une TextBox ici, et de lui setter la valeur null ou string.empty, et ça marche ^^ (se servir du VisualTreeHelper).

    Code :

    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
     
     
    public void Clean()
    {
    TextBox textBox = FindVisualChild<TextBox>(this.AutoCompleteBox1);
     
                if (textBox != null)
                {
                    textBox.Text = string.Empty;
                }
    }
     
    public static childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
            {
                for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                    if (child != null && child is childItem)
                    {
                        return (childItem)child;
                    }
                    else
                    {
                        childItem childOfChild = FindVisualChild<childItem>(child);
     
                        if (childOfChild != null)
                        {
                            return childOfChild;
                        }
                    }
                }
     
                return null;
            }
    Résolu !

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

Discussions similaires

  1. AutoCompleteBox dans un datagrid en silverlight 3
    Par raoufinf dans le forum Silverlight
    Réponses: 5
    Dernier message: 03/08/2011, 09h12
  2. comment nettoyer un écran plasma?
    Par vampyer972 dans le forum Périphériques
    Réponses: 8
    Dernier message: 25/09/2007, 14h42
  3. Tester et nettoyer les favoris
    Par Furius dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/09/2005, 20h50
  4. Un antivirus qui va nettoyer la partition win ?
    Par Michaël dans le forum Sécurité
    Réponses: 9
    Dernier message: 28/06/2005, 11h21
  5. un batch DOS pour "nettoyer des fichiers" ?
    Par RoroMinator dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 12/02/2004, 16h24

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