Zum Inhalt springen

C# Arrayliste hinter Listview Item legen


MANSH

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 B) sollte eh keiner Zugriff auf die Datei haben, solange die von Deinem Programm genutzt wird.

Bearbeitet von lbm1305
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 B) 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...