删除源文件后,数据网格不会更改

时间:2017-04-16 12:35:01

标签: c# winforms

我有一个来自Text文件的显示数据的datagridview。然后,我有一个按钮,它具有删除文本文件内容的功能(将其返回到0字节)。

但是为什么事件执行(通​​过单击按钮),即使使用.refresh()函数,数据网格也不会刷新。这是删除文件文本内容的按钮代码。

private void button1_Click(object sender, EventArgs e)
{
      File.WriteAllText("Transaction.txt", String.Empty);
      dataGridView1.Refresh();
}

PS:只有在重新启动Windows窗体后,datagridview才会改变(当然是空的。)

1 个答案:

答案 0 :(得分:0)

您需要BindingList类将数据绑定到datagridview:

var _bindingList = new BindingList<string>();

在你的表单构造函数中:

public MyForm
{
    InitializeComponent();
    myDataGridView.BindingSource = _bindingList;
}

创建一个计时器来监控文件的更改:

DateTime lastWriteTime = DateTime.Now
private void timer_tick(object sender, EventArgs e)
{
    FileInfo f = new FileInfo("C:\\myFile.txt");
    if ( lastWriteTime == f.LastWriteTime) return;
    lastWriteTime = f.LastWriteTime;
    UpdateBindingList();
}

private void UpdateBindingList()
{
    _bindingList.Clear();
    //then read the file and add items to _bindingList.
}