代码之家  ›  专栏  ›  技术社区  ›  Mark Wickman

以编程方式修改已筛选datagridview中的单元格

  •  0
  • Mark Wickman  · 技术社区  · 7 年前

    如果我从数据源加载DataGridView,

    this.exampleTableAdapter.Fill(this.refdataDataSet.Example);
    

    exampleBindingSource.Filter = "TrackingId = 'x'";
    

    然后尝试在过滤后的DataGridView上迭代并修改它们

    foreach (DataGridViewRow row in datagridExampleList.Rows)
    {
       //Tried to set rows directly
       row.Cells["TrackingId"].Value = "";
       //Also tried variations of setting the DataBoundItem directly
    }
    

    但是,由于某种原因,它不会在整个集合中迭代。

    似乎什么都不管用。。

    有什么建议吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   DotNet Developer    7 年前

                var filter = exampleBindingSource.Filter;
                exampleBindingSource.Filter = null;
                foreach (DataGridViewRow row in datagridExampleList.Rows)
                {
                    //Tried to set rows directly
                    row.Cells["TrackingId"].Value = "";
                    //Also tried variations of setting the DataBoundItem directly
                }
                exampleBindingSource.Filter = filter;
    
        2
  •  0
  •   Slai Pslice    7 年前

    为了避免使用行枚举器,可以尝试使用for循环:

    int c = datagridExampleList.Columns["TrackingId"].Index;
    
    for (int r = datagridExampleList.RowCount - 1; r >= 0; r--)
        datagridExampleList[c, r].Value = "";