SelectedRows то же самое для двух datagridview - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть вкладка с двумя вкладками.

На каждом есть сетка данных.

Они имеют одинаковый источник привязки.

У меня проблема с синхронизацией выделенных строк на каждом.

Теперь у меня есть:

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;
            }
        }
    }
}

Но, когда я меняю закладку, выделенные строки во второй сетке очищаются.

Есть идеи или опыт с этой проблемой?

1 Ответ

0 голосов
/ 15 апреля 2011

Это может быть связано с тем, что привязка не работает, пока элемент управления не станет видимым. Обходной путь - временно сделать вторую сетку видимой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...