첨부 소스 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
using System.Collections.Generic;

using DevExpress.Xpf.Grid;

#region 데이터 행 핸들 리스트 구하기 - GetDataRowHandleList(gridControl)

/// <summary>
/// 데이터 행 핸들 리스트 구하기
/// </summary>
/// <param name="gridControl">GridControl 객체</param>
/// <returns>데이터 행 핸들 리스트</returns>
public List<int> GetDataRowHandleList(GridControl gridControl)
{
    List<int> rowHandleList = new List<int>();

    for(int i = 0; i < gridControl.VisibleRowCount; i++)
    {
        int rowHandle = gridControl.GetRowHandleByVisibleIndex(i);

        if(gridControl.IsGroupRowHandle(rowHandle))
        {
            if(!gridControl.IsGroupRowExpanded(rowHandle))
            {
                rowHandleList.AddRange(GetDataRowHandleListInGroup(gridControl, rowHandle));
            }
        }
        else
        {
            rowHandleList.Add(rowHandle);
        }
    }

    return rowHandleList;
}

#endregion

#region 그룹에서 데이터 행 핸들 리스트 구하기 - GetDataRowHandleListInGroup(gridControl, groupRowHandle)

/// <summary>
/// 그룹에서 데이터 행 핸들 리스트 구하기
/// </summary>
/// <param name="gridControl">GridControl 객체</param>
/// <param name="groupRowHandle">그룹 행 핸들</param>
/// <returns>그룹에서 데이터 행 핸들 리스트</returns>
public List<int> GetDataRowHandleListInGroup(GridControl gridControl, int groupRowHandle)
{
    List<int> rowHandleList = new List<int>();

    for(int i = 0; i < gridControl.GetChildRowCount(groupRowHandle); i++)
    {
        int rowHandle = gridControl.GetChildRowHandle(groupRowHandle, i);

        if(gridControl.IsGroupRowHandle(rowHandle))
        {
            rowHandleList.AddRange(GetDataRowHandleListInGroup(gridControl, rowHandle));
        }
        else
        {
            rowHandleList.Add(rowHandle);
        }
    }

    return rowHandleList;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요