Håller på att labbar lite med att binda resultatet av en query mot ett formulär. Har inga problem med att binda textboxar och även kunna uppdatera min entitet med nytt värde. ComboBoxar funkar dock bara 1-way verkar de som. Får upp värden från databasen men kan inte ändra det. Så fort boxen tappar focus sätts värdet till de ursprungliga igen ... Propertyn SelectedValue innehåller den valda saken från combobox listan dock inte rakt av utan bara den property som är angiven i ValueMember.Bindo ComboBox (EntityFramework)
Hur gör man detta korrekt? Någon som vet?
'Declares
Dim dw As New KEntities
Dim Document As ProductPartDocument
'Fill combobox
ComboBox1.DataSource = dw.ProductPartDocumentStatuses
ComboBox1.DisplayMember = "Description"
ComboBox1.ValueMember = "ID"
'Get a document
Document = (From d In dw.ProductPartDocuments Where d.ID = 2).Single
'Set some binding
ComboBox1.DataBindings.Add("SelectedValue", Document, "Status")
TextBox1.DataBindings.Add("Text", Document, "Title")
Sv: Bindo ComboBox (EntityFramework)
Så du har nu satt "Selected.ID <=> Document.Status", vilket troligt inte är samma data typ och därför inte bindingen vill fungera. Att bara ta bort ComboBox1.ValueMember hjälper inte eftersom SelectedValue då kommer att ersättas av ett ToString() anrop på den valda saken.
Lösningen är att istället binda till SelectedItem som är just hela den valda saken "Selected <=> Document.Status" och då Comboboxen visar en lista på DocumentStatusar blir det förhoppningsvis rätt.
Jag har här antagit några saker om dina klasser och kod som jag inte ser men hoppas att jag gissat rätt och att detta hjälper
__________________________________
Cecilia Wirén @ceciliasharp
MCT on Addskills