我正在构建一个winfrom应用程序,它将成为一本地址簿。我虽然遇到了问题。当我打开程序并按下我的加载联系人按钮时,它会加载文本文件中写入的所有内容。但是,如果我创建新联系人并再次按下加载,则新联系人不会显示。有没有什么办法解决这一问题?
此外,当我尝试创建新方法时,例如Delete()方法。它说“设置DataSource属性时无法修改Items集合。”任何想法为什么会崩溃?
List<string> Load()
{
StreamReader read = new StreamReader(path);
string row = "";
while ((row = read.ReadLine()) != null)
{
adressbook.Add(row);
}
read.Close();
return adressbook; //Adressbook is my List<string> adressbook = new List<string> uptop.
}
private void button2_Click(object sender, EventArgs e)
{
List<string> list = Load();
listBox1.DataSource = list;
}
答案 0 :(得分:0)
在清除和绑定之前,您必须设置 null DataSource :
private void button2_Click(object sender, EventArgs e)
{
if(listBox1.DataSource != null)
{
listBox1.DataSource = null;
listBox1.Items.Clear();
}
List<string> list = Load();
listBox1.DataSource = list;
}
在加载中,您必须先清除列表
List<string> Load()
{
if (adressbook.Count != 0)
{
adressbook.Clear();
}
StreamReader read = new StreamReader(path);
string row = "";
while ((row = read.ReadLine()) != null)
{
adressbook.Add(row);
}
read.Close();
return adressbook; //Adressbook is my List<string> adressbook = new List<string> uptop.
}