从文本文件中读取并使用Button填充到列表框

时间:2017-11-13 10:48:33

标签: c# wpf

我正在尝试创建一个窗口程序,程序从文本文件中读取并在列表框中显示数据。我已经尝试了下面的编码,但现在的问题是,每次我点击按钮,它都会附加,数据会重复。

我该怎么做才能读取文件并只包含新的输入数据?

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();
    }
}

2 个答案:

答案 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))
取决于您真正想要的内容,重新更新整个列表只添加新条目,而不是删除旧条目。