Salut à toutes et à tous,

C'est la première fois que je développe une application avec un DataSet fortement typé (XSD). J'ai donc une série de question auxquelles je ne trouve pas les réponses malgré plusieurs jours de recherches. Aussi je vous les exposes.
Peut-être est-ce même au niveau de la structure de l'application que j'ai un problème. Auquel cas je vous remercie de me donner vos idées et pistes de travail.

Le but est de pouvoir modifier les données de bases de données Access qui ont toutes exactement le même schéma. Seules les données changent. Evidemment on ne modifie qu'une MDB à la fois, mais l'application doit pouvoir utiliser le même XSD pour toutes les bases de données (problème de la connectionString qui est dans le config d'application, mais c'est résolu).

J'ai créé un DataSet fortement typé contenant les tables, les requêtes et les queries.

Principe :
Datas :
Une table Parcelles, une table Lignes en relation avec les parcelles et une tables Points en relation avec les lignes, parce que chaque parcelle contient des lignes, qui chacune contient des points
Forms :
Une fenêtre principale est un MDI container.
Lors du choix d'une base de données par un openfiledialog, je modifie et je recharge la connectionstring de la config d'application (cela fonctionne) et j'ouvre la fenêtre Parcelles qui contient un DataGridView qui affiche les parcelles afin d'y faire un choix et d'ouvrir une autre fenêtre pour voir les détails de la parcelle.
A la création de la Form Parcelles, si je glisse la table Parcelles du DataSet (dans l'outil DataSources), un DataSet, un TableAdapter, un BindingSource et un BindingNavigator se créent dans la Form.
Ici je constate que si je glisse la même table de l'Outil DataSources dans la fenêtre principale, un autre DataSet se crée dans celle-ci. J'en déduis que je peux me retrouver avec différents DataSet contenant des données différentes (cela se vérifie si on modifie le nom d'une parcelle dans le DataSet de la fenêtre principale. Je me retrouve avec 2 DataSet contenant tous les 2 une table Parcelles qui contiennent des valeurs différentes. Ce n'est pas du tout ce que je veux. J'espérais que via le XSD les données seraient les mêmes partout. En fait, je pensais qu'il n'y aurait qu'un DataSet, avec une Table de chaque type).
Je me dis donc que je vais mettre le DataSet dans la fenêtre principale et lier les controles des fenêtres filles à ce DataSet afin que, si je modifie les données d'une parcelle dans une fenêtre de détail (son nom par exemple), cela se répercute dans les autres fenêtre (choix de parcelles par exemple).
Je pensais qu'en mettant un DataGridView dans la fenêtre Parcelles et en le liant à la table Parcelles du DataSet dans la fenêtre principale par un BindingSource, si je modifie le nom d'une parcelle via une fenêtre de détail (liée à la même table), la donnée allait se répercuter dans la table Parcelles.
Pourtant, si je change de base de données (je refill les tables du DataSet), je constate que les données de la table Parcelles du DataSet ont bel et bien été mises à jour, pourtant le DataGridView de la fenêtre Parcelles garde imperturbablement les premières données qui y ont été chargées.

Comment dois-je faire ?
J'en perd mon latin.

Pour être clair, ce dont j'ai besoin :

Une fenêtre pour choisir la (les) parcelle(s) à modifier.
Une (des) fenêtre(s) de détail de parcelles pour modifier les données d'une parcelle (via des textbox et checkbox bindés à la table des parcelles) ainsi qu'un DataGridView permettant de modifier les données des lignes de la parcelle. Bref, une modif dans une fenêtre se répercute sur les autres en direct.
Last but not least : un bouton pour sauvegarder la parcelle (détails) en cours et un bouton pour sauvegarder toutes les parcelles (détails) ouvertes. Les update, insert, delete par transaction à cause de la concurrence optimiste (et oui, d'autres peuvent modifier la même base de donnée en même temps) afin de tout modifier ou ne rien modifier selon le choix de l'utilisateur.

Le tout ne me paraît pas si simple, vu toutes les imbriquations.
Je pensais mettre les données Lignes de chaque parcelle dans une table (via GetData) à l'intérieur de la Form de détail de parcelle mais peut-être suis-je mieux de faire les corrections directement dans le DataSet global.

Merci de vos z'avis z'avisés