GridView.GridMenuItemClick Event
Enables you to provide custom responses to clicking context menu items.
Namespace: DevExpress.XtraGrid.Views.Grid
Assembly: DevExpress.XtraGrid.v24.1.dll
NuGet Packages: DevExpress.Win.Grid, DevExpress.Win.Navigation
Declaration
Event Data
The GridMenuItemClick event's data class is GridMenuItemClickEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
AutoFilterCondition | Gets the currently processed filter condition (when the GridMenuItemClick event fires for items in the auto-filter row‘s menu). |
Column | Gets the column whose footer cell or header was clicked to invoke a context menu. |
DXMenuItem | Gets the clicked menu item. |
Handled | Gets or sets a value specifying whether default menu item click processing is required after event handler execution. |
MenuItem | Obsolete. This property is obsolete. |
MenuType | Gets the type of the context menu whose item was clicked. |
SummaryFormat | Gets or sets the summary value formatting. |
SummaryItem | Gets a summary item object corresponding to the footer cell whose menu’s item was clicked. |
SummaryItems | Gets the View’s group summary items collection. |
SummaryType | Gets the summary type which is about to be applied. |
Remarks
The GridMenuItemClick event is fired in response to clicking a menu item. It enables you to cancel default actions performed when clicking a particular item and provide your own item handling. You can also perform actions as well as the default processing. For instance, you may update a summary item’s formatting when end-users change the summary type using context menus.
Note: the GridMenuItemClick event is not raised when clicking menu items that are created manually in your GridView.PopupMenuShowing event handler.
Example
The following code demonstrates how to use the GridView.GridMenuItemClick
event to customize a specific column’s summary. The code determines for which column a menu is activated, and if this column’s GridColumn.FieldName property value is “UnitPrice” and the menu type is a footer menu and an item clicked is not “Count”, then the text displayed in the summary footer under the “UnitPrice” column is formatted to display the summary value in currency format:
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Localization;
//...
private void gridView_GridMenuItemClick(object sender, GridMenuItemClickEventArgs e) {
string sumFormat;
int subSumFormat;
//Summary format is only adjusted for the UnitPrice column,
// if its summary type is not Count
if(e.MenuType != GridMenuType.Summary || e.DXMenuItem.Tag.Equals(
GridStringId.MenuFooterCount)) return;
if(e.Column.FieldName == "UnitPrice") {
sumFormat = e.SummaryFormat;
//Find the summary value placeholder
subSumFormat = sumFormat.IndexOf("0");
//Custom format string
if(subSumFormat > 0) sumFormat = sumFormat.Substring(0, subSumFormat) + "0:c}";
//Update the summary format string
e.SummaryFormat = sumFormat;
}
}