Bonjour à tous,

Tel que suggéré sur MSDN, la meilleure façon de récupérer des données des composants d'une autre Windows Form (par exemple, une boite de dialogue appelée par une autre form) est de créer une propriété qui retourne le composant désiré (TextBox, ListView, etc.).

Donc, si à partir d'une form principale, j'affiche une autre form à l'utilisateur (avec ShowDialog()), et que je veux récupérer les informations des TextBox de cette dernière, je devrai créer une propriété pour chaque TextBox.

J'ai beaucoup de classes collections dérivant de List<T>, et dans l'exemple suivant, je me demande comment est-ce mieux de retourner mes données à la Windows Form parent :

1. La Windows Form parent affiche la Windows Form enfant, qui contient un ListView.

2. Cette Windows Form enfant, aussitôt affichée, va chercher des éléments d'une base de données, et les affiche en tant qu'items à ce ListView.

* Ici, je me serts d'une classe contrôle que j'ai créé au niveau de la base de données, qui me retourne mes données sous forme d'entités grâce à des classes et une collection que j'ai créés. Je me sert de la collection retournée pour créer mes ListViewItems et les ajouter au ListView *

3. L'utilisateur peut ajouter ou détruire des éléments dans ce ListView.

4. Une fois ses modifications terminées, je dois retourner les données à la Windows Form parent.

Voilà ma question :

Devrais-je accéder au ListView de la Windows Form enfant en créant une propriété retournant le ListView lui-même ?

ou

Devrais-je créer une méthode "get_MaCollection" dans ma Windows Form enfant, qui prendra chaque ListViewItem du ListView et rebâtira une nouvelle collection afin de la retourner à la form parent ?

Je suis conscient que les deux techniques fonctionnent parfaitement bien. Cependant j'aimerais connaître la plus logique et celle qui m'évitera des soucis à long terme.

Ma question en bref : est-ce mieux de retourner des classes entités explicitement créées ou bien est-ce mieux de retourner les composants eux-mêmes des Windows Form enfants (utilisant les propriétés) et de faire le traitement au niveau de la Windows Form parent ?

Merci d'avance