我正在尝试创建一个窗口程序,程序从文本文件中读取并在列表框中显示数据。我已经尝试了下面的编码,但现在的问题是,每次我点击按钮,它都会附加,数据会重复。
我该怎么做才能读取文件并只包含新的输入数据?
private void Button_Click(object sender, RoutedEventArgs e)
{
using (StreamReader sr = new StreamReader("C:\\Users\\jason\\Desktop\\Outbound.txt"))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Listbox1.Items.Add(line);
}
sr.Close();
}
}
答案 0 :(得分:4)
执行所需操作的最简单方法是将文件中的所有行读入集合,然后将该集合分配给ListBox的ItemsSource属性:
private void Button_Click(object sender, RoutedEventArgs e)
{
Listbox1.ItemsSource = File.ReadAllLines(@"C:\Users\jason\Desktop\Outbound.txt");
}
答案 1 :(得分:0)
正如克莱门斯在评论中所说,你可以Listbox1.Items.Clear()
或Listbox1.ItemsSource = File.ReadAllLines(@"C:\Users\jason\Desktop\Outbound.txt");
但这总是会用文件替换所有列表框。如果您只是想要输入新数据,只需在添加项目之前检查是否if(!Listbox1.Items.Contains(line))
。
取决于您真正想要的内容,重新更新整个列表或只添加新条目,而不是删除旧条目。