UltraWinGrid - Получить текущую ячейку / столбец для группы по строке - PullRequest
0 голосов
/ 16 мая 2011

Я пытаюсь предоставить краткую сводку для выбранных строк, если активная ячейка имеет тип double или int.Это прекрасно работает, если сетка не сгруппирована ни по одному столбцу.Но когда сетка сгруппирована по одному или нескольким столбцам, при выборе строк верхнего уровня активная ячейка отсутствует.

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 при выборе группировки по строкам.Как получить активный столбец / ячейку, когда выбраны группы по строкам?

1 Ответ

1 голос
/ 20 мая 2011

Если столбец из GetContext равен нулю, сделайте еще один вызов GetContext для типа UltraGridGroupByRow. Если экземпляр возвращается, получите от него свойство Column, и это даст вам сгруппированный столбец, к которому относится эта строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...