clear listbox og fyld den igen
Hejsa EJeg har et problem med en listbox...
Jeg bruger en funktion til at fylde den med data fra et xml doc.
Listboksen fyldes når applicationen starter og så kan man genfylde den igen, enten ved at søge på en streng og fylde den med resustatet, eller ved bare at fylde den helt op igen.
public string LoadData(string srcStr)
{
Constants cnt = new Constants();
Functions fcn = new Functions();
string returData;
if (!File.Exists(cnt.dataPath))
{
fcn.GetData();
}
try
{
returData = "Data loades";
string wineData = "";
string wineyear = "";
string classification = "";
DataSet dsWine = new DataSet();
dsWine.ReadXml(cnt.dataPath);
foreach (DataRow dr in dsWine.Tables["DealerWine"].Rows)
{
classification = dr["classification"].ToString();
wineyear = dr["wineyear"].ToString();
wineData = dr["name"].ToString();
if (classification != "")
{
wineData += " " + classification;
}
if (wineyear != "0")
{
if (wineyear != "1")
{
wineData += " " + wineyear;
}
else
{
wineData += " UA";
}
}
dr["name"] = wineData;
dsWine.AcceptChanges();
if (srcStr.Length>0)
{
if (dr["name"].ToString().IndexOf(srcStr.ToString())>-1)
{
lstShowWines.Items.Add(dr["name"].ToString());
}
}
else
{
lstShowWines.Items.Add(dr["name"].ToString());
}
}
lstShowWines.DataSource = dsWine.Tables["DealerWine"];
lstShowWines.DisplayMember = "name";
lstShowWines.ValueMember = "guid";
//lstShowWines.Items.Clear();
lstShowWines.DataSource = null;
dsWine.Clear();
}
catch (Exception e)
{
returData = e.ToString();//"Der skete en fejl ved hentning af data";
MessageBox.Show(returData);
}
return returData;
}
ovenstående fyldes op og tømmes igen og så er jeg jo lige vidt...
Hvis jeg udkommenterer
//lstShowWines.DataSource = null;
//dsWine.Clear();
kommer der noget i listboksen, men så kommer der en fejl når jeg søger eller når der genfyldes:
"cannot modify the items collection when the datasource is set"
http://www.google.dk/search?hl=da&q=cannot+modify+the+items+collection+when+the+datasource+is+set&btnG=Google-s%C3%B8gning&meta=
Håber nogen kan hjælpe med at opklare denne
