Greetings I have a combobox which filters all the items in the by clearing the panel controls and repopulating it according to the filter, but for whatever reason it loads them improperly and after a couple of filter changes only shows some and not all. It reads it from a litst passing it to another which has all the filtered ones yet it still cant do it.
Any help is greatly appreciated.
The code segment
<code> private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (GegStde == null)
return;
foreach (Gegenstand geg in panel1.Controls.OfType<Gegenstand>().Where(x => x.select))
{
geg.Reset();
}
panel1.Controls.Clear();
List<Gegenstand> TempGegStd = new List<Gegenstand>();
if (Filter.SelectedIndex == 0)
TempGegStd = new List<Gegenstand>(GegStde);
else if (Filter.SelectedIndex == 1)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => x.GetDesc.Contains("Spezies")).ToList());
else if (Filter.SelectedIndex == 2)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => !x.GetDesc.Contains("Spezies")).ToList());
foreach (Gegenstand art in TempGegStd)
{
panel1.Controls.Add(art);
if (panel1.Controls.Count > 1)
art.Location = new Point(art.Location.X, panel1.Controls[panel1.Controls.Count - 2].Location.Y + panel1.Controls[panel1.Controls.Count - 2].Height + 5);
}
}
</code>
<code> private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (GegStde == null)
return;
foreach (Gegenstand geg in panel1.Controls.OfType<Gegenstand>().Where(x => x.select))
{
geg.Reset();
}
panel1.Controls.Clear();
List<Gegenstand> TempGegStd = new List<Gegenstand>();
if (Filter.SelectedIndex == 0)
TempGegStd = new List<Gegenstand>(GegStde);
else if (Filter.SelectedIndex == 1)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => x.GetDesc.Contains("Spezies")).ToList());
else if (Filter.SelectedIndex == 2)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => !x.GetDesc.Contains("Spezies")).ToList());
foreach (Gegenstand art in TempGegStd)
{
panel1.Controls.Add(art);
if (panel1.Controls.Count > 1)
art.Location = new Point(art.Location.X, panel1.Controls[panel1.Controls.Count - 2].Location.Y + panel1.Controls[panel1.Controls.Count - 2].Height + 5);
}
}
</code>
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (GegStde == null)
return;
foreach (Gegenstand geg in panel1.Controls.OfType<Gegenstand>().Where(x => x.select))
{
geg.Reset();
}
panel1.Controls.Clear();
List<Gegenstand> TempGegStd = new List<Gegenstand>();
if (Filter.SelectedIndex == 0)
TempGegStd = new List<Gegenstand>(GegStde);
else if (Filter.SelectedIndex == 1)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => x.GetDesc.Contains("Spezies")).ToList());
else if (Filter.SelectedIndex == 2)
TempGegStd = new List<Gegenstand>(GegStde.Where(x => !x.GetDesc.Contains("Spezies")).ToList());
foreach (Gegenstand art in TempGegStd)
{
panel1.Controls.Add(art);
if (panel1.Controls.Count > 1)
art.Location = new Point(art.Location.X, panel1.Controls[panel1.Controls.Count - 2].Location.Y + panel1.Controls[panel1.Controls.Count - 2].Height + 5);
}
}