2011-04-14 2 views
0

두 개의 탭이있는 tabcontrol이 있습니다.두 DataGridview에 대해 SelectedRows가 동일합니다.

각각에는 datagridview가 있습니다.

이들은 동일한 바인딩 소스를 가지고 있습니다.

각각에 선택한 선택 동기화에 문제가 있습니다. 내가 삭제하는 두 번째 그리드에서 tabpage의 selectedrows을 변경하고있을 때,

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

을하지만 :

지금, 나는있다.

어떤 아이디어가 있습니까? 아니면이 문제가 발생합니까?

+0

두 DataGridView가 정확히 같으면 탭 컨트롤 외부에 하나만 있어야합니다. –

답변

0

컨트롤이 처음으로 표시 될 때까지 바인딩이 작동하지 않기 때문일 수 있습니다. 해결 방법은 두 번째 눈금을 일시적으로 보이게하는 것입니다.

관련 문제