Spero di aver capito bene, nell'evento selectionchanged del datagridview invochi il metodo che aggiorna l'origine dati dei dettagli passandogli come parametro la cella del datagrid che contiene l'id:
datagridview.Rows[e.RowIndex].Cells["cell_name"].value
a posto di "cell_name" in formato stringa, puoi usare l'indice numerico della cella, partendo da 0 per la prima a sx... sono andato a memoria protrebbe essere leggermente diversa la sintassi
