Bonjour à tous,
Dans mon programme, j'en suis à initialiser les contrôles d'une fenêtre WPF : textbox, label, ...
Pour ce faire, j'ai fait plusieurs méthodes afin d'initialiser/modifier mes contrôles indépendamment les uns des autres. En voici deux :
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 private void InitClub() { Para p = new Para(); Int32 IdClub = p.DonneIdClub(); // Existance : if (!Clubs.Existe(IdClub)) { IdClub = -1; p.EnregistreIdClub(-1); } // Initialisations : if (IdClub == -1) { // Pas de club sélectionné : LblNomEtat.Content = "Nom du club à créer :"; TxtNomClub.Text = ""; } else { if (Clubs.DonneNbClubs() > 1) { LblNomEtat.Content = "Nom du club à modifier ou supprimer :"; } else { LblNomEtat.Content = "Nom du club à modifier :"; } TxtNomClub.Text = Clubs.DonneNom(IdClub); } }C'est méthodes sont appelées notamment dans l'événement Loaded de la fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void InitClubInformation() { LblLongueurNomClub.Content = "Nombre de caractères : " + TxtNomClub.Text.Length + "/" + Cstes.ClubNomLongueur; }
La première méthode fonctionne parfaitement mais la deuxième lève l'exceptionet VS pointe sur mon label LblLongueurNomClub.System.NullReferenceException: 'La référence d'objet n'est pas définie à une instance d'un objet.'
J'ai bien compris que VS me signale que cet objet n'a pas été défini mais je ne comprends pas ce qu'il veut de plus.
Le plus étrange, c'est que si je mets ma ligne de code LblLongueurNomClub.Content = "Nombre de caractères : " + TxtNomClub.Text.Length + "/" + Cstes.ClubNomLongueur; dans la première méthode, il n'y a pas d'exception.
Le nom de mon label est correct car j'utilise celui que VS me propose lors de sa saisie.
Rajouté après coup :
Peut-être un début de réponse : ma deuxième méthode est utilisée deux fois pour le moment. Dans l'événement Loaded de la fenêtre comme indiqué plus haut, mais aussi dans l'événement TextChanged de mon textbox TxtNomClub. Et c'est dans ce dernier que l'exception doit être levée puisque, en mettant en commentaire l'appel à InitClubInformation, pas d'exception ! Mon projet précédent était sous Windows Form est cela ne posait pas de problème.
Donc, du coup, comment, à partir de l'événement TextChanged de mon textbox, obtenir la fenêtre auquel il appartient ?
Merci d'avance pour votre aide.
Partager