Ich verstehe nur noch Bahnhof.
Jedenfalls habe ich es jetzt mal so gemacht:
Code:
namespace Container_Klasse
{
public partial class Form1 : Form
{
List<Person> PersonenListe = new List<Person>();
private void UpdateControls()
{
toolStripStatusLabel1.Text = PersonenListe.Count.ToString();
lbEntries.Items.Clear();
foreach (Person person in PersonenListe)
{
lbEntries.Items.Add(person.Name + ", " + person.Vorname);
}
tbName.Text = string.Empty;
tbVorname.Text = string.Empty;
btnDel.Enabled = (PersonenListe.Count > 0) && (lbEntries.SelectedIndex > -1);
}
public Form1()
{
InitializeComponent();
UpdateControls();
}
private void btnAdd_Click(object sender, EventArgs e)
{
Person p = new Person(tbName.Text, tbVorname.Text);
PersonenListe.Add(p);
tbName.Focus();
UpdateControls();
}
private void lbEntries_SelectedIndexChanged(object sender, EventArgs e)
{
btnDel.Enabled = lbEntries.SelectedIndex > -1;
if (lbEntries.SelectedIndex > -1)
{
tbName.Text = PersonenListe[lbEntries.SelectedIndex].Name;
tbVorname.Text = PersonenListe[lbEntries.SelectedIndex].Vorname;
}
}
private void btnDel_Click(object sender, EventArgs e)
{
if (lbEntries.SelectedIndex > -1)
{
PersonenListe.RemoveAt(lbEntries.SelectedIndex);
UpdateControls();
}
}
}
}
Ist da irgendein schwerwiegender Fehler drin?
Wie könnte ich das ganze jetzt noch nach Name und Vorname sortieren?
Habs:
Code:
private static int ComparePerson(Person p1, Person p2)
{
if (p1.Name == p2.Name)
return p1.Vorname.CompareTo(p2.Vorname);
else
return p1.Name.CompareTo(p2.Name);
}
private void UpdateControls()
{
toolStripStatusLabel1.Text = PersonenListe.Count.ToString();
PersonenListe.Sort(ComparePerson);
lbEntries.Items.Clear();
foreach (Person person in PersonenListe)
{
lbEntries.Items.Add(person.Name + ", " + person.Vorname);
}
tbName.Text = string.Empty;
tbVorname.Text = string.Empty;
btnDel.Enabled = (PersonenListe.Count > 0) && (lbEntries.SelectedIndex > -1);
}