DataGridView不会在Collection Modified上刷新

时间:2011-06-10 11:24:10

标签: c# .net windows winforms datagridview

在我的应用程序中,我有一个绑定到BindingList的DataGridView,对象继承INotifyPropertyChanged以通知更改,同一个线程。

问题是DataGridView没有刷新UI,在选择行中的值被更新时,所以我尝试在最后使用DataGridView.Refresh(),现在工作的值全部在DataGridView上更新UI。

但是实际的过程是长期运行的,它是从网上下载的,所以我需要在更新时显示这些值。

请建议。

public class Proxy : INotifyPropertyChanged
    {
        public string IPAddress
        {
            get
            {
                return ipaddress;
            }
            set
            {
                ipaddress = value;
                OnPropertyChanged("IPAddress");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
}

SortableSearchableList<Proxy> proxyList = new SortableSearchableList<Proxy>();
proxydatagrid.DataSource = proxyList;

我希望更新DATAGRIDVIEW,因为收藏品已经过修改,而不是更新。

2 个答案:

答案 0 :(得分:0)

您应该逐行更新。

您需要启动一个帖子,告诉您的应用更新哪一行。如果做得好,每行应逐一更新。

另一个选项是将结果存储在其他数据表或数据集中,操作完成后,将数据网格的数据表替换为新数据表。

答案 1 :(得分:0)

我认为您想要调用DataGrid.Items.Refresh()来刷新项目,而不是DataGridView.Refresh()