Ho un problema stupidissimo (o almeno credo). Nonostante tutto non riesco a risolverlo.
Quando uno vuole collegare a una table una Combobox usa questo codice:

codice:
Combobox1.DataSource = "Tabella a cui ci si riferisce"
Combobox1.DisplayMember = "Campo da visualizzare"
Combobox1.ValueMember = "ID del campo che viene selezionato"      

Combobox1.DataBindings.Add("Text", BindingSource (anche un'altra bindingsource), "Campo da visualizzare come binding")

Quindi, analogamente, quando collego una DataGridView con una ComboBox dovrei scrivere:

codice:
DataGridView.DataSource = "BindingSource1"

DataGridViewComboBox1.DataSource = "Tabella a cui ci si riferisce (anche non della BindingSource1)"
DataGridViewComboBox1.DisplayMember = "Campo da visualizzare"
DataGridViewComboBox1.ValueMember = "ID del campo che viene selezionato"      

DataGridViewComboBox1.DataPropertyName = "Nome del campo da collegare (Vorrei che fosse di BindingSource1)"
Se il nome del campo fa parte della stessa tabella, tutto bene. Se invece è una tabella in un'altra bindingSource, mi esce il seguente messaggio:

Si è verificata la seguente eccezione in DataGridView.
System.FormatException: Valore di ComboBoxCell non valido.
Per sostituire questa finestra di dialogo predefinita, gestire l'evento DataError

Cosa ho sbagliato?

Vorrei fare un modulo per le fatture.
Scelgo l'articolo nella tendina articoli e copio gli altri valori nella sottomaschera della fattura.

Grazie a chi mi risponderà.