Bonjour à tous,
Je cherche depuis un moment comment faire pour avoir une autocompletion quand j'appuie sur TAB, j'ai pensé a utiliser l'èvement keyDown pour detecter directement la touche pressée.
Voila ce que j'ai fais dans ma méthode de départ:
donc j'ai crée mon évènement pour ensuite faire ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PutNumberPhoneBox.TextChanged += new TextChangedEventHandler(PutNumberPhoneBox_TextChanged);
A ce moment je récupère ma liste d'item contenu dans mon jdappel et je l'add a une liste.
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 void PutNumberPhoneBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { numberphone = new List<string>(); foreach (var diaryphonenumber in _monMain.JdDappel.MyItems) { numberphone = new List<string> { diaryphonenumber.Contact.ToString() }; } string numberphoneClient = PutNumberPhoneBox.Text; List<string> autoList = new List<string>(); autoList.Clear(); autoList.AddRange(numberphone.Where(item => !string.IsNullOrEmpty(PutNumberPhoneBox.Text)).Where(item => item.StartsWith(numberphoneClient))); if (autoList.Count > 0) { lblsuggestion.ItemsSource = autoList; lblsuggestion.Visibility = Visibility.Visible; } else if (PutNumberPhoneBox.Text.Equals("")) { lblsuggestion.Visibility = Visibility.Collapsed; lblsuggestion.ItemsSource = null; } else { lblsuggestion.Visibility = Visibility.Collapsed; lblsuggestion.ItemsSource = null; } }
pour enfin faire une listebox qui affiche le numéro de téléphone que je souhaite:
Donc en effet j'ai bien le bon numéro de téléphone mis dans ma ListeBox sur lequel l'on peut click pour qu'il soit directement add a ma TextBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private void lblsuggestion_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (lblsuggestion.ItemsSource != null) { lblsuggestion.Visibility = Visibility.Collapsed; PutNumberPhoneBox.TextChanged -= new TextChangedEventHandler(PutNumberPhoneBox_TextChanged); if (lblsuggestion.SelectedIndex != -1) PutNumberPhoneBox.Text = lblsuggestion.SelectedItem.ToString(); PutNumberPhoneBox.TextChanged += new TextChangedEventHandler(PutNumberPhoneBox_TextChanged); } }
mais je souhaite aussi pouvoir appuyer sur Tab afin de na pas cliquer a chaque fois.
Auriez-vous une idée, de la doc a me passer pour que je puisse savoir comment faire et si j'ai faux au final me le dire aussi ^^
Merci d'avance
Partager