selectedrow对于两个datagridview是相同的

本文关键字:datagridview 于两个 selectedrow | 更新日期: 2023-09-27 17:50:18

我有一个有两个标签页的标签控件。

每一个都有一个datagridview。

它们具有相同的绑定源。

我有一个同步选择的问题。

现在,我有:

private void dgvGeoObjectsSecondView_SelectionChanged(object sender, EventArgs e)
{
   if (tabControl1.SelectedIndex == 1)
   {
       foreach (DataGridViewRow dvRow in this.dgvGeoObjectsSecondView.Rows)
       {
           foreach (DataGridViewRow dvRowFirstView in this.dgvGeoObjectsFirstView.Rows)
           {
               if ((long) ((DataRowView) dvRow.DataBoundItem)["ObiektID"] ==
                  (long) ((DataRowView) dvRowFirstView.DataBoundItem)["ObiektID"])
                        dvRowFirstView.Selected = dvRow.Selected;
            }
       }
   }
}
private void dgvGeoObjectsFirstView_SelectionChanged(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex==0)
    {
        foreach (DataGridViewRow dvRow in this.dgvGeoObjectsFirstView.Rows)
        {
            foreach (DataGridViewRow dvRowSecondView in this.dgvGeoObjectsSecondView.Rows)
            {
                if ((long)((DataRowView)dvRow.DataBoundItem)["ObiektID"] ==
                   (long)((DataRowView)dvRowSecondView.DataBoundItem)["ObiektID"])
                         dvRowSecondView.Selected = dvRow.Selected;
            }
        }
    }
}

但是,当我改变选项卡时,第二个网格中的selectedrows正在清除。

对于这个问题有什么想法或经验吗?

selectedrow对于两个datagridview是相同的

这可能是因为绑定在控件首次变为可见之前是不起作用的。解决方法是使第二个网格暂时可见。