Пример #1
0
        protected virtual internal bool ShowContextMenu()
#endif
        {
            if (this.GroupDropArea == null || this.GroupDropArea.dataGrid == null || this.GroupDropArea.dataGrid.GroupDropItemContextMenu == null)
            {
                return(false);
            }

            var menuinfo = new GridColumnContextMenuInfo()
            {
                Column = this.GridColumn, DataGrid = this.GroupDropArea.dataGrid
            };
            var args = new GridContextMenuEventArgs(this.GroupDropArea.dataGrid.GroupDropItemContextMenu, menuinfo,
                                                    RowColumnIndex.Empty, ContextMenuType.GroupDropAreaItem, this.GroupDropArea.dataGrid);

            if (!GroupDropArea.dataGrid.RaiseGridContextMenuEvent(args))
            {
#if WPF
                if (args.ContextMenuInfo != null)
                {
                    this.GroupDropArea.dataGrid.GroupDropItemContextMenu.DataContext = args.ContextMenuInfo;
                }
                this.GroupDropArea.dataGrid.GroupDropAreaContextMenu.PlacementTarget = this;
                this.GroupDropArea.dataGrid.GroupDropItemContextMenu.IsOpen          = true;
#else
                if (args.ContextMenuInfo != null)
                {
                    foreach (var item in args.ContextMenu.Items)
                    {
                        item.DataContext = args.ContextMenuInfo;
                    }
                }
                args.ContextMenu.ShowAt(this, position);
#endif
                return(true);
            }
            return(false);
        }
Пример #2
0
        protected internal virtual bool ShowContextMenu()
#endif
        {
            if (ColumnBase == null || ColumnBase.Renderer == null || ColumnBase.Renderer.DataGrid == null)
            {
                return(false);
            }
#if WPF
            ContextMenu contextMenu = null;
#else
            MenuFlyout contextMenu = null;
#endif
            var dataGrid = ColumnBase.Renderer.DataGrid;
            GridContextMenuEventArgs args = null;
            var rowColIndex = new RowColumnIndex(ColumnBase.RowIndex, this.ColumnBase.ColumnIndex);

            var menuinfo = new GridRecordContextMenuInfo()
            {
                Record = this.DataContext
            };

            if (dataGrid is DetailsViewDataGrid)
            {
                menuinfo.DataGrid       = dataGrid;
                menuinfo.SourceDataGrid = (dataGrid as DetailsViewDataGrid).GetTopLevelParentDataGrid();
            }
            else
            {
                menuinfo.DataGrid = dataGrid;
            }

            if (this is GridCaptionSummaryCell)
            {
                if (dataGrid.GroupCaptionContextMenu != null)
                {
                    contextMenu = dataGrid.GroupCaptionContextMenu;
                    args        = new GridContextMenuEventArgs(contextMenu, menuinfo, rowColIndex, ContextMenuType.GroupCaption, dataGrid);
                }
            }
            else if (this is GridGroupSummaryCell)
            {
                if (dataGrid.GroupSummaryContextMenu != null)
                {
                    contextMenu = dataGrid.GroupSummaryContextMenu;
                    args        = new GridContextMenuEventArgs(contextMenu, menuinfo, rowColIndex, ContextMenuType.GroupSummary, dataGrid);
                }
            }
            else if (this is GridTableSummaryCell)
            {
                if (dataGrid.TableSummaryContextMenu != null)
                {
                    contextMenu = dataGrid.TableSummaryContextMenu;
                    args        = new GridContextMenuEventArgs(contextMenu, menuinfo, rowColIndex, ContextMenuType.TableSummary, dataGrid);
                }
            }
            else if (dataGrid.RecordContextMenu != null && !ColumnBase.IsIndentColumn &&
                     !(this is GridIndentCell) && !(this is GridRowHeaderIndentCell))
            {
                contextMenu = dataGrid.RecordContextMenu;
                args        = new GridContextMenuEventArgs(contextMenu, menuinfo, rowColIndex, ContextMenuType.RecordCell, dataGrid);
            }

            if (args != null && !ColumnBase.Renderer.DataGrid.RaiseGridContextMenuEvent(args))
            {
#if WPF
                if (args.ContextMenuInfo != null)
                {
                    contextMenu.DataContext = args.ContextMenuInfo;
                }
                contextMenu.PlacementTarget = this;
                contextMenu.IsOpen          = true;
#else
                if (args.ContextMenuInfo != null)
                {
                    foreach (var item in args.ContextMenu.Items)
                    {
                        item.DataContext = args.ContextMenuInfo;
                    }
                }
                args.ContextMenu.ShowAt(this, position);
#endif
                return(true);
            }
            return(false);
        }