2011-05-16 4 views
0

활성 셀의 유형이 double 또는 int 인 경우 선택한 행에 대한 요약을 빠르게 제공하려고합니다. 그리드가 모든 열에 의해 그룹화되지 않은 경우이 작동합니다. 그러나 격자가 하나 이상의 열로 그룹화되면 최상위 행이 선택 될 때 활성 셀이 없습니다. 행으로 그룹을 선택하면UltraWinGrid - 행 단위로 현재 셀/열 가져 오기

void ultraGrid_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) 
{ 
    var ultraGrid = ((UltraGrid)sender); 

    var selected = ultraGrid.Selected; 
    var hasCells = selected.Cells != null && selected.Cells.Count > 0; 
    var hasRows = selected.Rows != null && selected.Rows.Count > 0; 
    if (!hasCells && !hasRows) 
    { 
     statusLabel.Text = string.Empty; 
     return; 
    } 

    UltraGridColumn activeColumn; 
    var activeCell = ultraGrid.ActiveCell; 
    if(activeCell == null ) 
    { 
     var aUIElement = ultraGrid.DisplayLayout.UIElement.ElementFromPoint(ultraGrid.PointToClient(MousePosition)); 
     activeColumn = (UltraGridColumn)aUIElement.GetContext(typeof(UltraGridColumn)); 
    } 
    else activeColumn = activeCell.Column; 

    if(activeColumn == null || (activeColumn.DataType != typeof (double) && activeColumn.DataType != typeof (int))) 
    { 
     statusLabel.Text = string.Empty; 
     return; 
    } 
    //code to calculate summaries for selected rows or cells and active column 
} 

그러나 aUIElement.GetContext (대해서 typeof (UltraGridColumn))은 항상 null을 반환합니다. 행 단위로 그룹을 선택하면 활성 열/셀을 어떻게 얻습니까?

+0

감사합니다. Rob. 마지막에 편집 텍스트를 추가하지 않고 편집을 시도했지만 편집을 완료하려면 6 개의 공백이 아닌 문자를 추가해야한다고했습니다. –

답변

1

GetContext의 열이 null 인 경우 GetContextUltraGridGroupByRow으로 호출하십시오. 인스턴스가 반환되면 Column 속성을 가져 오면 해당 행이 참조하는 그룹화 된 열이 표시됩니다.