(Gelöst)Webservice DataGridView kein Einfügen

24. November 2011 15:06

Hallo zusammen,

ich habe mir mal probeweise im Visual Studio (c# Windows-Forms Anwendung) die Artikelpage als Webservice eingebunden und über eine Bindingsource in ein DataGridView geholt.
Im Onload der Form habe ich folgendes implementiert (WSArtikel = Webservice und myBindingSource = BindingSource der DataGridView):

Code:
        MyItems = new WSArtikel.Artikel_Service();
        myBindingSource.DataSource = MyItems.ReadMultiple(null, null, 0);


Wenn ich jetzt die Form starte, kann ich alle Artikel im DataGridView sehen.
Für das Löschen und Ändern von Datensätzen im DataGridView muss ich dann entsprechenden Code schreiben, der die Daten über den Webservice wieder in die Datenbank schreibt.

Mein Problem ist folgendes:
Sobald ich den DataSource mit ReadMultiple fülle, kann ich im DataGridView keinen neuen Datensatz anlegen.

Ich habe versucht zu erzwingen, dass ein neuer Datensatz angelegt werden kann:

Code:
myBindingSource.AllowNew = true;
myBindingSource.DataSource = MyItems.ReadMultiple(null, null, 0);


Versuche ich jetzt in die neue Zeile (*) zu klicken stürzt die Form ab:
System.NotSupportedException : "Die Liste hatte eine feste Größe."

Das zurückgegebene Array von ReadMultiple hat also anscheinend eine feste Größe?

Was kann ich machen?

grüße,
Jürgen


EDIT:

Ich habe das Problem lösen können, indem ich das Ergebnis von ReadMultiple mit foreach in eine List<> eingelesen habe und dann die List<> dem BindingSource als DataSource zugewiesen habe

Code:
...
WSArtikelattribute.Attributwert[] MyAttributes;
List<WSArtikelattribute.Attributwert> CurAttributes;
System.Windows.Forms.BindingSource cSource;

...
 CurAttributes = new List<WSArtikelattribute.Attributwert>();
 MyAttributes = MyAttribut.ReadMultiple(filterArray.ToArray(), null, 0);
 foreach (WSArtikelattribute.Attributwert CurAttribute in MyAttributes)
 {
     CurAttributes.Add(CurAttribute);
 }
 cSource.DataSource = CurAttributes;