MANSH Geschrieben 17. April 2010 Teilen Geschrieben 17. April 2010 Hallo, ich bin ein ziemlicher Neuling in C# und versuche gerade mit einem Listview zu arbeiten. Ich habe schon Items geadded etc. Funzt auch alles gut. Meine Daten stehen aber im moment in einer .csv Datei und wenn ich im Listview ein Item ändere, will ich auch das es in der Datei geändert wird... Dazu hab ich ein PrimäryKey für jede Datensatz. Dann könnte ich den PK mit in das Listview adden und bei Änderungen die Datei nach dem PK durchsuchen und ihn abgleichen.... Das Problem: Ich will den PK nicht im Listview sehen, der PK steht aber ganz vorne... Kann man Columns im Listview unsichtbar machen? Soweit ich das gesehen hab kann man das nicht... Im Moment ist der PK bei mir als letztes Subitem geadded und dafür gibts keine Column in meiner Listview wodurch es auch nicht sichtbar ist..... Ist alles bisschen umständlich... Deswegen die Frage, wie man Daten aus einer Datei und einem Listview synchron halten kann. Ich hoffe es ist wenigstens etwas verständlich was mein Problem ist Gruß Manuel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 18. April 2010 Teilen Geschrieben 18. April 2010 (bearbeitet) Das Problem: Ich will den PK nicht im Listview sehen, der PK steht aber ganz vorne... Kann man Columns im Listview unsichtbar machen? Soweit ich das gesehen hab kann man das nicht... Moin, Du kannst jedem ListViewItem einen Tag zuweisen. In diesem kann man ein beliebiges Objekt speichern. Also auch Deinen PrimaryKey. Ist alles bisschen umständlich... Deswegen die Frage, wie man Daten aus einer Datei und einem Listview synchron halten kann. Ich hoffe es ist wenigstens etwas verständlich was mein Problem ist Die Daten hälst Du ja bereits in einer Liste. Da sollten die Daten aktuell vorliegen. Um die Datei synchron zu halten, kannst Du a) Jedesmal bei einer Änderung die Liste gegen die Datei schreiben (oder nur die Änderungen) oder sollte eh keiner Zugriff auf die Datei haben, solange die von Deinem Programm genutzt wird. Bearbeitet 18. April 2010 von lbm1305 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MANSH Geschrieben 18. April 2010 Autor Teilen Geschrieben 18. April 2010 Die Daten hälst Du ja bereits in einer Liste. Da sollten die Daten aktuell vorliegen. Um die Datei synchron zu halten, kannst Du a) Jedesmal bei einer Änderung die Liste gegen die Datei schreiben (oder nur die Änderungen) oder sollte eh keiner Zugriff auf die Datei haben, solange die von Deinem Programm genutzt wird. Also müsste ich dann beim hinzufügen eines Items, mein Listview anpassen (das Item adden), in meiner Arraylist den neuen Datensatz adden und den Datensatz in meine Datei schreiben, richtig? Also hinkriegen würd ich das schon, aber einfacher geht das nicht? Ich speicher Arrays in meiner Arrayliste, jedes Array ist dann ein Datensatz. Sollte ich das vielleicht anders machen oder ist das in Ordnung so? Gruß Manuel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 18. April 2010 Teilen Geschrieben 18. April 2010 Also müsste ich dann beim hinzufügen eines Items, mein Listview anpassen (das Item adden), in meiner Arraylist den neuen Datensatz adden und den Datensatz in meine Datei schreiben, richtig? Also hinkriegen würd ich das schon, aber einfacher geht das nicht? Ich speicher Arrays in meiner Arrayliste, jedes Array ist dann ein Datensatz. Sollte ich das vielleicht anders machen oder ist das in Ordnung so? Gruß Manuel Uff...ArrayList heißt nicht, dass man da Arrays ablegt. Aber egal. Nehmen wir mal an, du hast Daten einer Person in Deiner Datei (Name, Vorname, Id) Dann würde ich ein Klasse / Objekt Person anlegen, mit den drei Properties Name, Vorname, Id public class Person { public string Name {get; set;} public strig Vorname {get; set;} public int Id {get; set;} } Bei Auslesen der Datei werden Personen instanziert, die in einer generischen Liste vom Typ Person gespeichert werden. List<Person> persons = new List<Person>(); persons.Add(personA); persons.Add(personB); Diese Liste kann man dann dem ListView hinzufügen. Über das selektierte ListViewItem kommst du an die Id des dahinterliegenden Person-Objekt. Zum Thema ListViewItem (.Tag) siehe auch: ListViewItem.Tag-Eigenschaft (System.Windows.Forms) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MANSH Geschrieben 24. April 2010 Autor Teilen Geschrieben 24. April 2010 Uff...ArrayList heißt nicht, dass man da Arrays ablegt. Aber egal. Joa, ist mir schon klar Klappt leider alles nicht so einfach wie ich mir das vorgestellt habe. Aber trotzdem danke für die Denkanstöße. Gruß Manuel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.