Autor Beitrag
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: Di 10.08.10 23:53 
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:
ausblenden volle Höhe C#-Quelltext
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:

ausblenden 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); //Funktion um eine Karte mit den Bezeichung name zulöschen
            }
        }


Das klappt aber nicht, denn da spuckt er mir immer eine Fehlermeldung aus:

[url=img202.imageshack.us/i/85525023.png/]user defined image[/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?