Je veux afficher ma datagrid dans mon Controls

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   - 19 mars 2021 à 19:56
Bonjour j'ai une question
je fais un travail d'école et j'utilise deux sControls un affiche une datagrid avec une liste de jeux dans laquelle je fais un binding des données et un autre s 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 sControls 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 : Control
    {
        public UCFormulaire()
        {
            InitializeComponent();
// la ligne de l'erreur 

            txt_Nom.Text = (dgListeJeux.SelectedItem as JeuSociete).Nom;
            

        }
        
      
    }
}
A voir également:

2 réponses

Utilisateur anonyme
 
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.sitesdebloques.org/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)//er 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 er 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...
0
danny243 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention  
 
d'accord merci beaucoup
0