Zitat von
p0ke:
Also ich lass die ID erstmal drin. Bins sonst von den Datenbanken gewohnt, das man immer irgendwo n eindeutigen Schlüssel hat. Um von meiner Seite aus zu sagen ob ich die ID nun im
XML wirklich brauche oder nicht, dazu hab ich noch zu wenig Hintergrundwissen was das anbelangt.
Bei einer echten Datenbank mag so eine eindeutige ID ja auch durchaus Sinn machen. Selbst bei unterschiedlichen Sortierungen kann man immer noch recht fix die jeweils höchste ID ermitteln und als Basis für den nächsten Eintrag nehmen. Oder man verwendet eine ID, die automatisch und ohne Zutun des Anwenders erhöht wird.
Hier, in diesem speziellen Fall wird die jeweils nächste ID immer aus dem Wert des letzten Items in der List-View gebildet:
MainForm.MovieList.items[MainForm.MovieList.Items.Count - 1].Caption
Das ist dann problematisch, wenn du eine Sortierung einbaust. Sagen wir: der Film "Stargate" hat die ID 1, weil du ihn zuerst eingetragen hast. Und "Casablanca" hat meinetwegen die ID 2, weil du ihn später eingetragen hast. Lässt du jetzt alfabetisch sortieren, dann wird "
Casablanca" logischerweise vor "
Stargate" angezeigt.
Evtl. ist "Stargate" auch der letzte Film in der Liste, womit nun die ID 1 am Ende steht. Wenn du jetzt einen neuen Film hinzufügst (ohne vorher wieder nach IDs zu sortieren), dann wird durch die o.g. Codezeile die 2 als "neue" ID berechnet.
Um also die tatsächlich echte nächste ID zu ermitteln, müsstest du die List-View intern umsortieren bzw. alle Items durchgehen und die höchste Zahl suchen. Und weil das umständlich ist, habe ich darauf verzichtet. Und mal ehrlich: spielt es eine Rolle, mit welcher ID die Filme archiviert werden? Wichtiger ist
IMHO die Anzeige der Filmnamen und die mögliche Sortierung nach Genre, Typ (DVD, usw.), Bewertung und dergleichen.