Контекстное меню на групповой строке в RadGridView - PullRequest
0 голосов
/ 21 сентября 2011

Я нашел одно старое решение Здесь .

Но GridViewExpander устарел в 2009 году. Доказательство Здесь .

Как я могу реализовать его (контекстное меню на групповой строке в RadGridView) другим способом?

1 Ответ

0 голосов
/ 29 сентября 2011

Нет ответов ... = (

Но я нашел решение. Есть два способа решения:

1) Если вам нужен собственный стиль для GridViewGroupRow - прочитайте о Структура шаблонов

2) Если нет, просто используйте что-то вроде этого:

<TelerikNavigation:RadContextMenu.ContextMenu>
            <TelerikNavigation:RadContextMenu Opened="RadContextMenuOpened" ItemClick="ContextMenuItemClick" x:Name="contextMenu">
            </TelerikNavigation:RadContextMenu>

private void RadContextMenuOpened(object sender, RoutedEventArgs e)
    {
        var menu = (RadContextMenu)sender;
        if (menu == null)
            return;
        var cell = menu.GetClickedElement<GridViewCell>();
        var row = menu.GetClickedElement<GridViewRow>();
        var groupRow = menu.GetClickedElement<GridViewGroupRow>();
        if (cell != null && row != null)
        {
            if (!cell.DataColumn.IsFrozen)
            {
                //Code for current cell
            }
        }
        if (groupRow != null)
        {
            //Code for groupRow
        }
    }

private void ContextMenuItemClick(object sender, RadRoutedEventArgs e)
    {
        if (_currentCell != null)
        {
            //Code for current cell
        }
        if (_currentGroupRow != null)
        {
            var menu = (RadContextMenu)sender;
            var clickedItem = e.OriginalSource as RadMenuItem;
            if (clickedItem != null)
            {
                foreach (var gridViewRow in _currentGroupRow.ChildrenOfType<GridViewRow>())
                {
                    foreach (var gridViewCellBase in gridViewRow.Cells)
                    {
                        if (gridViewCellBase.Column.UniqueName == "PlanObject")
                        {
                            var val = gridViewCellBase.DataContext as YourObjectName;
                            if (val != null)
                            {
                                //.....
                            }
                        }
                    }
                }
                //....
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...