我正在更改数据源时DataGridView不会更新

时间:2014-09-04 13:41:39

标签: c# winforms datagridview

我有DataGridView,DataSource是List。当我在gridview中更改该List中的elements属性时,它显示在之前。当我点击行时,它会更改值。我正在使用BackgroundWorker更新列表。如何同时更新DataGridView?

2 个答案:

答案 0 :(得分:0)

您必须使用ObservableCollection与INotifyPropertyChanged结合使用,因为ObservableCollection仅在添加或删除项目时通知,但在更改项目时不通知。

ObservableCollection Class

How to Listen to Property Changes of Items of an ObservableCollection

在SO上还有一个类似的question可能会对您有所帮助。

答案 1 :(得分:0)

msdn

中摘录的摘录
private void RefreshGrid(object dataSource)
{
    yourGridName.Invoke((Action)delegate
    {
        var myCurrencyManager = (CurrencyManager)yourGridName.BindingContext[dataSource];
        myCurrencyManager.Refresh();
    });
}

每当后台工作者更新dataSource时调用此方法。