Originariamente inviato da garzone
ma lo avevo fatto già credo....
però poi non mi assegnava i valori della grid sul form

cioè avevo messo in new()

inizializeComponent()
acquistato = new ACQUISTATI
dataform.currentItem = acquistato
dataform.beginedit()
end sub

nel button_click
dataForm1.CommitEdit()

Dim _OrganizationContext As OrganizationContext = AcquistaDataSource.DomainContext
_OrganizationContext.ACQUISTATIs.Add(acquistato)
AcquistaDataSource.SubmitChanges()
end sub


Private Sub DataGrid1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles DataGrid1.SelectionChanged
dataForm1.CurrentItem = DataGrid1.SelectedItem

End Sub

scusa per l'urlo era per differenziare quello che scrivevo ....
bastava separare i "code"
no fa nulla per l'urlo
usa i tag [ CODE] [ /CODE] (senza spazi) per formattare il codice, se no è poco leggibile.

dataForm1 con il tuo codice attuale (non quello che hai scritto) credo che contenga il tipo CALCIATORI a giudicare dall'errore come source dei dati, quindi CurrentItem dovrebbe contenere il tipo CALCIATORI che servirà per ricavare i dati che ti servono da mettere nella tabella ACQUISTATIs che quasi certamente contiene il tipo ACQUISTATI, quindi se tu vuoi aggiungere un nuovo ACQUISTATI devi creare l'istanza
codice:
 acquistato = new ACQUISTATI()
ma non nel New(), dentro button_click.
Probabilmente calciatore lo ricaverai con
codice:
calciatore = DirectCast(dataForm1.CurrentItem, CALCIATORI)
poi da li fai quello che ti ho indicato prima, ovvero
codice:
 acquistato.TuoCampo = calciatore.TuoCampo
ecc...