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); }
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); }