Meilleur auteur de réponses
Passage de paramètres entre deux formulaires

Question
-
Bonjour à tous.
Je développe sous VS 2012 une application WPF en C#. Je veux passer des paramètres entre deux formulaires qui sont déjà ouvert.
Pour être plus claire, voici ce que je veux faire:
J'ai deux formulaires Form1 et Form2 et sur chaque formulaire, j'ai un contrôle DataGrid. Je dois remplir la DataGrid1 sur la Form1 par des données de la DataGrid2 située sur la Form2. Sachant que j'ouvre ma Form2 avec ShowDialog() à partir de Form1. Sur Form2 il y a un bouton BtnSelect qui doit me permettre de passer toutes les données sélectionnées sur la DataGrid2 à la DataGrid1 située sur Form1 et ensuite je ferme Form2. J'ai des problèmes pour faire passer les données de Form2 à Form1 en sachant le formulaire Form1 reste ouvert pendant et après l’exécution de Form2.
J'espère que j'ai été un peu claire. Merci d'avance pour vos suggestions.
tontonKouam
Réponses
-
Bonjour,
Voilà une belle façon de faire. On suppose que Window2 contient votre DataGrid contenant les données :
public partial class Window2 : Window { private Data lesData; public Window2() { InitializeComponent(); } private void OnSelect() { this.lesData = DataDepuisMonGrid(); this.DialogResult = true; this.Close(); } public static Data Sélectionner() { Window1 w; w = new Window1(); if (w.ShowDialog() == true) { return w.lesData; } return null; } }
Vous disposez maintenant d'une méthode statique Sélectionner() sur Window1 que vous pouvez appeler depuis Window2 :
Data data; data = Window2.Sélectionner(); if (data != null) { // L'utilisateur a sélectionné des data }
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Aurel Bera vendredi 5 avril 2013 08:05
- Marqué comme réponse Aurel Bera lundi 8 avril 2013 06:25
-
Bonjour,
Veuillez m'excuser mais j'ai fait une faute dans le code de la méthode Sélectionner(). Il faut instancier la fenêtre Window2 :
public static Data Sélectionner() { Window2 w; w = new Window2(); if (w.ShowDialog() == true) { return w.lesData; } return null; }
La méthode OnSelect() est une méthode qui est appelé lorsque l'utilisateur clique sur un bouton "OK" afin de fermer la fenêtre et de récupérer ce qu'a sélectionné l'utilisateur.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Aurel Bera vendredi 5 avril 2013 08:05
- Marqué comme réponse Aurel Bera lundi 8 avril 2013 06:25
Toutes les réponses
-
Bonjour,
Voilà une belle façon de faire. On suppose que Window2 contient votre DataGrid contenant les données :
public partial class Window2 : Window { private Data lesData; public Window2() { InitializeComponent(); } private void OnSelect() { this.lesData = DataDepuisMonGrid(); this.DialogResult = true; this.Close(); } public static Data Sélectionner() { Window1 w; w = new Window1(); if (w.ShowDialog() == true) { return w.lesData; } return null; } }
Vous disposez maintenant d'une méthode statique Sélectionner() sur Window1 que vous pouvez appeler depuis Window2 :
Data data; data = Window2.Sélectionner(); if (data != null) { // L'utilisateur a sélectionné des data }
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Aurel Bera vendredi 5 avril 2013 08:05
- Marqué comme réponse Aurel Bera lundi 8 avril 2013 06:25
-
Merci Monsieur Gilles TOURREAU. Il y a une ligne que je comprends pas dans le code de Window2
C'est celle-ci "return w.lesData". Au fait si je me base sur votre code lesData n'existe pas dans le code de Window1 et puisque w est une instance de Window1 donc cette ligne devait être une erreur.
Il y a aussi la methode OnSelect qui n'est appelé nul part donc je ne comprends pas aussi sont utilité ici.
Excusez moi si je pause ces genres de question mais je débute en WPF C#
tontonKouam
- Modifié Innos2010 jeudi 4 avril 2013 13:38
-
Bonjour,
Veuillez m'excuser mais j'ai fait une faute dans le code de la méthode Sélectionner(). Il faut instancier la fenêtre Window2 :
public static Data Sélectionner() { Window2 w; w = new Window2(); if (w.ShowDialog() == true) { return w.lesData; } return null; }
La méthode OnSelect() est une méthode qui est appelé lorsque l'utilisateur clique sur un bouton "OK" afin de fermer la fenêtre et de récupérer ce qu'a sélectionné l'utilisateur.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Aurel Bera vendredi 5 avril 2013 08:05
- Marqué comme réponse Aurel Bera lundi 8 avril 2013 06:25
-