Abend. Ich schreibe im Moment an einem Programm für Magic The Gathering, es geht um das Laden und Editieren von Deckliste und deren (sortierte) Ausgabe in einem DataGridView:
Hier ist der Code den ich bis jetzt habe:
Ich habe ein DataGridView dgvDeckListe mit der ich mir Elemente einer Liste anzeigen lasse. Die Liste besteht aus folgenden Elementen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| class Karte { private string name; private string edition; private int anzahl; private int startAnzahl;
public List<Angebot> angebote;
#region Properties
public string Name { get { return name; } }
public string Edition { get { return edition; } }
public int Anzahl { get { return anzahl; } set { anzahl = value; } }
public int StartAnzahl { get { return startAnzahl; } }
#endregion internal Karte(string cardName, int cardCount, string edition) { angebote = new List<Angebot>(); this.name = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(cardName.Trim()); this.anzahl = cardCount; this.edition = edition; this.startAnzahl = cardCount; }
internal void AddAngebot(string verkaufer, int anzahl, bool foil, float preis, string zustand, string sprache, int evalGrade, string standort) { Angebot angebot = new Angebot(verkaufer, anzahl, foil, preis, zustand, sprache, evalGrade, standort); angebote.Add(angebot); } } |
Jetzt würde ich das DataGridView gerne dazu benutzen Elemente aus der Liste zulöschen und mir die geänderte Liste anzuzeigen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| private void dgvDecktListe_KeyUp(object sender, KeyEventArgs e) { if (dgvDeckListe.Columns.GetColumnCount(DataGridViewElementStates.Selected) != -1) { int index = dgvDeckListe.CurrentCellAddress.Y; string name = deck.karten[index].Name;
if (e.KeyCode == Keys.Delete) deck.RemoveCard(name); } } |
Das klappt aber nicht, denn da spuckt er mir immer eine Fehlermeldung aus:
[url=
img202.imageshack.us/i/85525023.png/]
[/URL]
Uploaded with
ImageShack.us
Das einzige was mir auf die schnelle einfällt wäre die DataSource von dem DataGrivView kurz auf "" zusetzen, das Ding zulöschen und dann die Source wieder zurück zu setzen. Irgendwie muss das doch eleganter gehen oder?