2012-07-02 3 views
0

C# Win Forms 응용 프로그램에서 DataGridView 항목이 두 개이고 항상 같은 열 집합이있는 경우 어떻게 항상 같은 방식으로 정렬되는지 확인하려면 어떻게해야합니까?DataGridView 정렬 - 두 개 동기화 유지

한 표 또는 다른 정렬 할 때 알림을 얻을 수 있지만 같은 방법으로 다른 표를 정렬하려면 해당 알림을 사용하려고하면 스택 오버플로 (명백한 이유로) 얻을.

일부 추한 해킹으로 인해 스택 오버플로 문제가 발생할 수 있지만 정상적인 방법으로이를 수행해야합니다. 사용자가 정렬 할 때 두 개의 DataGridView를 동기화 상태로 유지할 필요가있는 첫 번째 사용자가 될 수 없습니다.

답변

1

스택 오버플로가 발생합니다 (명백한 이유로).

샘플 코드가 없으면 분명하지 않을 수 있습니다. 각 업데이트 알림이 무한 루프가되는 다른 표를 업데이트하기 때문에 스택 오버플로가 발생합니까? 다음

왜 그렇게 같은 상태를 추적 할 수 bools을 유지하지 않습니다

bool Grid1Fired = false; 
bool Grid2Fired = false; 

void handler_Grid1(..) 
{ 
    if(Grid1Fired == false && Grid2Fired == false) 
    { 
     Grid1Fired = true; 
     SortGrids(); 
    } 
} 
void handler_Grid2(..) 
{ 
    if(Grid1Fired == false && Grid2Fired == false) 
    { 
     Grid2Fired = true; 
     SortGrids(); 
    } 
} 

void SortGrids() 
{ 
    if(Grid1Fired) 
    { 
     // sort grid 2 
    } 
    else if(Grid2Fired) 
    { 
     // sort grid 1 
    } 
    Grid1Fired = false; 
    Grid2Fired = false; 
} 
관련 문제