Je veux afficher ma datagrid dans mon userControls
danny243
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
danny243 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
danny243 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai une question
je fais un travail d'école et j'utilise deux usersControls un affiche une datagrid avec une liste de jeux dans laquelle je fais un binding des données et un autre Users controls qui réçoit les details de chaque ligne de la datagrid lorsque l'on selectionne un jeu et ces details seront affichés dans des controls comme textBox, label , sauf que j'ai une erreur lorsque j'appelle ma datagrid dans mon deuxième usersControls il ne le reconnaît pas ça dit le nom 'dgListeJeux' n'existe pas dans le contexte actuel. j'aimerai que vous m'aidiez merci voici le code de l'erreur
je fais un travail d'école et j'utilise deux usersControls un affiche une datagrid avec une liste de jeux dans laquelle je fais un binding des données et un autre Users controls qui réçoit les details de chaque ligne de la datagrid lorsque l'on selectionne un jeu et ces details seront affichés dans des controls comme textBox, label , sauf que j'ai une erreur lorsque j'appelle ma datagrid dans mon deuxième usersControls il ne le reconnaît pas ça dit le nom 'dgListeJeux' n'existe pas dans le contexte actuel. j'aimerai que vous m'aidiez merci voici le code de l'erreur
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Collections.ObjectModel; namespace TP2_JeuxSociete { /// <summary> /// Logique d'interaction pour UCFormulaire.xaml /// </summary> public partial class UCFormulaire : UserControl { public UCFormulaire() { InitializeComponent(); // la ligne de l'erreur txt_Nom.Text = (dgListeJeux.SelectedItem as JeuSociete).Nom; } } }
A voir également:
- Je veux afficher ma datagrid dans mon userControls
- Afficher appdata - Guide
- Afficher calendrier outlook dans google agenda - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher le 0 devant un nombre dans excel - Guide
2 réponses
Bonjour
tout d'abord, merci de ne pas poster 2 fois la même question.
Ensuite, tu as essayé d'utiliser les balises de code, c'est super, mais tu ne l'as pas fait correctement.
Voici un petit tuto pour tes prochains posts https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pour ton problème, en se basant uniquement sur ce que tu présentes, dans la classe UCFormulaire, la variable n'existe pas. Donc forcément, Visual studio te dit qu'elle n'existe pas.
Une solution serait
(t'as vu c'est mieux en couleur, avec lignes de codes, ascenseurs etc...)
Et à l'appel de ton contrôle
Mais cette solution t'oblige à mettre ce contrôle sur ta fenêtre par le code et pas en mode design.
Une autre solution est d'utiliser une méthode
Enfin, on peut passer par une propriété de ton contrôle, mais pour te montrer, j'ai besoin de savoir quelle interface tu utilises. Je pense WPF, mais ça pourrait aussi être winform, asp, etc...
tout d'abord, merci de ne pas poster 2 fois la même question.
Ensuite, tu as essayé d'utiliser les balises de code, c'est super, mais tu ne l'as pas fait correctement.
Voici un petit tuto pour tes prochains posts https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pour ton problème, en se basant uniquement sur ce que tu présentes, dans la classe UCFormulaire, la variable n'existe pas. Donc forcément, Visual studio te dit qu'elle n'existe pas.
Une solution serait
public UCFormulaire(DataGrid dgListeJeux)//passer la grille en paramètre du constructeur { InitializeComponent(); txt_Nom.Text = (dgListeJeux.SelectedItem as JeuSociete).Nom; }
(t'as vu c'est mieux en couleur, avec lignes de codes, ascenseurs etc...)
Et à l'appel de ton contrôle
UCFormulaire MonControle = new UCFormulaire(dgListeJeux);
Mais cette solution t'oblige à mettre ce contrôle sur ta fenêtre par le code et pas en mode design.
Une autre solution est d'utiliser une méthode
public UCFormulaire() { InitializeComponent(); } public void SetDataGrid(DataGrid dgListeJeux)//dans le code behind, tu affectes la grille en appelant cette méthode. { txt_Nom.Text = (dgListeJeux.SelectedItem as JeuSociete).Nom; }
Enfin, on peut passer par une propriété de ton contrôle, mais pour te montrer, j'ai besoin de savoir quelle interface tu utilises. Je pense WPF, mais ça pourrait aussi être winform, asp, etc...