C# DataGridView根本不会刷新

C# DataGridView根本不会刷新,c#,datagridview,visual-studio-2013,C#,Datagridview,Visual Studio 2013,有没有一种简单的方法可以强制C Visual Studio 2013刷新 除非我在frmDomain_Load上运行它,否则它不起作用。如果我在任何时候重新运行它,即当我想向nDomains添加一些值时,它不会刷新 public DataGridView domainDataGridView { get; set; } public List<string> nDomains = new List<string>(); public void AddToGrid(){

有没有一种简单的方法可以强制C Visual Studio 2013刷新

除非我在frmDomain_Load上运行它,否则它不起作用。如果我在任何时候重新运行它,即当我想向nDomains添加一些值时,它不会刷新

public DataGridView domainDataGridView { get; set; }
public List<string> nDomains = new List<string>();

public void AddToGrid(){
    nDomains.Add("Brazil 1");
    nDomains.Add("Germany 7");
}

public void RefreshGrid(){
      domainDataGridView.Rows.Clear();
      domainDataGridView.Columns.Clear();

      domainDataGridView.ColumnCount = 1;

      domainDataGridView.Columns[0].Name = "Domain";
      domainDataGridView.Columns[0].Width = 251;

      foreach (String myDomain in nDomains)
      {
           domainDataGridView.Rows.Add(myDomain);
      }
      domainDataGridView.Refresh();
}
调用grid.Refresh只会导致它重新绘制,这并不一定会强制它使用任何新数据重新绘制。由于网格不知道数据已更改,因此它可能只是使用以前的数据重新绘制


如果将ListOf字符串更改为System.ComponentModel.BindingListOf字符串,则数据更改时将通知网格。这将导致每当添加/删除项目时,它都会自动刷新。

除了刷新问题之外,您不应该尝试将信息存储在那样的字符串中。约束:-S我不会做出反应-我只是不会!您不需要清除列。您可以查看DataGridView的DataSource属性。例如:domainDataGridView.DataSource=nDomains;你为什么。。。抑制?人们都在试图帮助你。因为这些评论与主题和问题无关,我显然是为了简洁而写的,来吧,德国7号?。真正的数据源是SQL中的字符串。列重置它以显示它只是显式请求的