Autor Beitrag
master147
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Sa 13.04.13 21:51 
Hallo,

ich wollte mal gerne ein Beispielprojekt machen, indem ich Daten von Benutzern in Listen speichere und wieder ausgeben kann. Das ganze möchte ich in einer Klasse Benutzer realisieren. Dort sollen die Daten in der Liste gespeichert werden.
Leider habe ich noch keine Ahnung wie ich Daten die über die Form eingegeben werden in einer Liste speichere und wieder ausgebe.

Könntet ihr mir vielleicht mal ein Beispielprojekt oder einen Pseudocode zeigen, damit ich weiß wie ich so etwas realisieren kann ?

Vielen Dank !
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 14.04.13 11:33 
Hallo!


Also sagen wir mal, Du hast auf dem Formular Textboxen für Vor- und Nachname (tbVorname und tbNachname). Und Du hast eine Klasse Benutzer, die so aussieht:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
    public class Benutzer
    {
        public string Vorname { get; private set; }
        public string Nachname { get; private set; }

        public Benutzer(string vorname, string nachname)
        {
            this.Vorname = vorname;
            this.Nachname = nachname;
        }

        public override string ToString()
        {
            return Vorname + " " + Nachname;
        }
    }



Dann kannst Du in einem Button (z.B. "Benutzer hinzufügen) eine neue Instanz eines Benutzers in eine Liste eintragen:
ausblenden C#-Quelltext
1:
2:
var benutzer = new Benutzer(tbVorname.Text, tbNachname.Text);
database.Add(benutzer);


Jetzt muss man sich noch Gedanken drum machen, was für eine Liste man als database verwendet. Ich würde eine Liste verwenden, die ohne mein Zutun der GUI sagt, wenn sich etwas geändert hat, wenn als ein Element hinzugefügt oder entfernt wurde. Da bietet sich in WinForms die BindingList<T> an:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
        private BindingList<Benutzer> database = new BindingList<Benutzer>();

        public Form1()
        {
            InitializeComponent();

            listBox1.DataSource = database;  //<--- diese Zeile in den Konstruktor einfügen
        }



Mit dem Code sollte jetzt beim Hinzufügen eines neuen Benutzers dieser automatisch in der Listbox erscheinen.

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
master147 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: So 14.04.13 13:52 
Vielen Dank Christian!

gibt es auch eine Möglichkeit die Liste zu durchsuchen, denn leider habe ich database.search nicht gefunden ?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 14.04.13 14:12 
Wenn du einfach wissen willst ob ein bestimmtes Object in der Liste enthalten ist dann mit der Contains Methode. Wenn du via irgendwelcher Kriterien aus der Benutzer Klasse etwas finden willst dann benutze LINQ.
master147 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: So 14.04.13 15:06 
Kann ich mit der Methode Contains denn auch das Objekt und die dazugehörigen Daten (Adresse, Ort ... ) mit anzeigen lassen ?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 14.04.13 15:14 
Was hat suchen/finden mit dem anzeigen zu tun? Contains prüft nur ob ein Objekt in der Liste ist sonst nichts. Wenn du das Objekt hast kannst du alles damit tun und lassen was dir beliebt.
master147 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: So 14.04.13 15:34 
Naja, vielleicht habe ich mich etwas falsch ausgedrückt. Ich wollte in meiner Liste einen Benutzer finden und ihn samt seiner Daten in einer Textbox anzeigen lassen.

Aber wie kann ich denn, wenn ich das Objekt gefunden habe die Daten anzeigen lassen ?