Solución: Utilizar la habilidad de relación de un dataset.
Para explicar mejor, pongo un ejemplo.
Tengo mi formulario llamado Form1, el cual contiene dos grid, GridMaestro y GridDetalle.
Todo la programación lo realizo en el load del formulario.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Creo un dataset que va a contener las tablas maestro - detalle Dim ds As New DataSet 'Creo los binding que relacionen a los grid Dim maestroBinding As New BindingSource Dim detalleBinding As New BindingSource 'Creo la tabla maestro y lo lleno con datos Dim tablaMaestro As DataTable = ds.Tables.Add("tablaMaestro") tablaMaestro.Columns.Add("unico") tablaMaestro.Columns.Add("dato") tablaMaestro.Rows.Add(1, "AAA") tablaMaestro.Rows.Add(2, "BBB") tablaMaestro.Rows.Add(3, "CCC") 'Creo el grid detalle y lo lleno con datos Dim tablaDetalle As DataTable = ds.Tables.Add("tablaDetalle") tablaDetalle.Columns.Add("unico") tablaDetalle.Columns.Add("relacion") tablaDetalle.Columns.Add("dato") tablaDetalle.Rows.Add(1, 1, "AAA-AAA") tablaDetalle.Rows.Add(2, 1, "BBB-AAA") tablaDetalle.Rows.Add(3, 1, "CCC-AAA") tablaDetalle.Rows.Add(1, 2, "AAA-BBB") tablaDetalle.Rows.Add(2, 2, "BBB-BBB") tablaDetalle.Rows.Add(3, 2, "CCC-BBB") tablaDetalle.Rows.Add(1, 3, "AAA-CCC") tablaDetalle.Rows.Add(2, 3, "BBB-CCC") tablaDetalle.Rows.Add(3, 3, "CCC-CCC") 'Creo la relacion entre las dos tablas Dim columnaMaestro As DataColumn = tablaMaestro.Columns(0) Dim columnaDetalle As DataColumn = tablaDetalle.Columns(1) Dim relation As DataRelation relation = New DataRelation("relacion", columnaMaestro, columnaDetalle) 'Asigno la relacion al dataset ds.Relations.Add(relation) 'Relaciono el Binding Maestro al dataset maestroBinding.DataSource = ds maestroBinding.DataMember = "tablaMaestro" 'Asigno el binding del maestro al detalle e identifico la relacion detalleBinding.DataSource = maestroBinding detalleBinding.DataMember = "relacion" 'Asigno los grid a los binding GridMaestro.DataSource = maestroBinding GridDetalle.DataSource = detalleBinding End Sub
La belleza aquí es la relación asignada al detalleBinding, el cual hace que al cambiar las filas en el maestro, se actualice la información en el detalle.