2015-01-20 3 views
0

C#의 Janus Grid에서 모두 축소/모두 확장 버튼을 구현하려고하지만 축소 할 것이 없을 때 Collapse ALL을 표시 할 필요가 없습니다!Janus Grid의 모든 레벨이나 그룹에서 행이 확장되었는지 확인하는 방법은 무엇입니까?

그래서 어떤 수준에서 어떤 행이 보이지 않는지 알아 내야 확장 할 수 있으므로 확장 버튼을 모두 표시하고 활성화 할 수 있습니다.

나는 모든 행을 반복하고 임의의 자식 행이 확장되어 있지 않은지 확인하는 다른 방법을 기대하고있다.

감사합니다.

답변

0

내 지식에는 그런 내장 된 방법이 없습니다. 재귀를 사용하지 않는 것이 중요하다면 HashSet<GridEXRow>과 함께 RowCollapsedRowExpanded 이벤트를 사용하여 확장/축소 된 행을 등록하고 등록을 취소하는 것이 좋습니다. 모든 확장 할 때 거기에이 방법을 사용하면 성능 저하 될 수 있다고

public class ... 
{ 
    ... 
    HashSet<GridEXRow> expandedRows = new HashSet<GridEXRow>(); 

    public bool IsExpanded 
    { 
     get { return expandedRows.Count > 0; } 
    } 
    ... 

    private void gridEX_RowCollapsed(object sender, Janus.Windows.GridEX.RowActionEventArgs e) 
    { 
     expandedRows.Remove(e.Row); 
    } 

    private void gridEXLocation_RowExpanded(object sender, Janus.Windows.GridEX.RowActionEventArgs e) 
    { 
     expandedRows.Add(e.Row); 
    } 
} 

주 및 붕괴 (모든 행이 expandedRows에 추가). 모두 축소하면 expandedRows가 삭제되지만 모두 접혀도 ​​각 행에 대해 RowCollapsed이 계속 트리거됩니다. 처음에는 이벤트를 제거한 다음 다시 넣지 않고 expandedRows.Clear();을 수행하는 것과 같은 바로 가기가 없습니다.