Bonjour à tous

Je me pose une question existencielle à laquelle je n'arrive pas à trouver de solution.

J'ai une collection de type BindingList(Of User) que je lie à un datagridview via sa propriété datasource. Pas de problème, mes données s'affichent bien.
J'ai un petit formulaire (textbox, combo...) me permettant d'éditer l'utilisateur en sélectionné.
Voici mes questions :

1) Ma classe user a une propriété de type Groupe possédant une propriété id_groupe et une propriété nom : Comment faire dans le datagridview pour que ma propriété groupe de mon objet user affiche le nom du groupe ? car pour le moment j'ai le toString qui s'affiche (donc le nom du type Groupe). J'ai bien essayé de mettre Groupe.Nom dans le DataPropertyName de la colonne concernée mais ca ne passe pas. Y'a bien la soluce d'ajouter une propriété readonly NomGroupe dans la classe user qui retourne Groupe.Nom mais je ne trouve pas cela terrible, ca fait redondant tout de meme.

2) Comment faire pour binder l'objet du datagridview sélectionné à mes textbox, combo d'edition du User ? Je sais que via la propriété DataboundItem de la selectedrow on récupere le user mais après je ne sais pas vraiment comment procéder pour faire le binding. Auriez vous une idée ? un best practice ? Comment faites vous en général ?