Back to Devexpress

GridContextMenuDefaultItemNames.UngroupColumn Field

blazor-devexpress-dot-blazor-dot-gridcontextmenudefaultitemnames-fff2c082.md

latest5.3 KB
Original Source

GridContextMenuDefaultItemNames.UngroupColumn Field

The Ungroup Column item’s name.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
public const string UngroupColumn = "UngroupColumn"

Field Value

TypeDescription
String

The “UngroupColumn” string.

|

Remarks

Specify the ContextMenus property to display context menus for the following Grid elements:

Ungroup Column is a Grid context menu item that removes grouping by the target column. This item is available in the header context menu if the following conditions are met:

  • Grouping is enabled at both Grid and column levels.
  • Data is grouped by the target column.

Use the UngroupColumn field to apply the following customizations:

  • Access and customize the Ungroup Column item.
  • Add this item to data row, footer, or group footer context menus. Group panel and group row menus do not support this item and will not display it.
  • Remove the item from the header context menu.

Example

The following code snippet removes the Ungroup Column command from the context menu associated with the Forecast header cell:

razor
@inject WeatherForecastService ForecastService

<DxGrid Data="@Data"
        ShowGroupPanel="true"
        ContextMenus="GridContextMenus.Header"
        CustomizeContextMenu="CustomizeContextMenu">
    <Columns>
        <DxGridDataColumn FieldName="Date" DisplayFormat="D" />
        <DxGridDataColumn FieldName="TemperatureC" Caption="@("Temp. (\x2103)")" Width="120px" />
        <DxGridDataColumn FieldName="TemperatureF" Caption="@("Temp. (\x2109)")" Width="120px" />
        <DxGridDataColumn FieldName="Forecast" GroupIndex="0" />
        <DxGridDataColumn FieldName="CloudCover" />
    </Columns>
</DxGrid>

@code {
    object Data { get; set; }

    protected override void OnInitialized() {
        Data = ForecastService.GetForecast();
    }
    void CustomizeContextMenu(GridCustomizeContextMenuEventArgs args) {
        if (args.Context is GridHeaderCommandContext headerContext) {
            if (headerContext.Column is IGridDataColumn dataColumn && dataColumn.FieldName == "Forecast") {
                args.Items.Remove(GridContextMenuDefaultItemNames.UngroupColumn);
            }
        }
    }
}
csharp
using System;

public class WeatherForecast {
    public DateTime Date { get; set; }
    public int TemperatureC { get; set; }
    public double TemperatureF => Math.Round((TemperatureC * 1.8 + 32), 2);
    public string Forecast { get; set; }
    public string CloudCover { get; set; }
    public bool Precipitation { get; set; }
}
csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

public class WeatherForecastService {
    private List<WeatherForecast> Forecast { get; set; }

    private static string[] CloudCover = new[] {
        "Sunny", "Partly cloudy", "Cloudy", "Storm"
    };

    Tuple<int, string>[] ConditionsForForecast = new Tuple<int, string>[] {
        Tuple.Create( 22 , "Hot"),
        Tuple.Create( 13 , "Warm"),
        Tuple.Create( 0 , "Cold"),
        Tuple.Create( -10 , "Freezing")
    };

    public WeatherForecastService() {
        Forecast = CreateForecast();
    }

    private List<WeatherForecast> CreateForecast() {
        var rng = new Random();
        DateTime startDate = DateTime.Now;
        return Enumerable.Range(1, 15).Select(index => {
            var temperatureC = rng.Next(-10, 30);
            return new WeatherForecast {
                Date = startDate.AddDays(index),               
                TemperatureC = temperatureC,
                CloudCover = CloudCover[rng.Next(0, 4)],
                Precipitation = Convert.ToBoolean(rng.Next(0, 2)),
                Forecast = ConditionsForForecast.First(c => c.Item1 <= temperatureC).Item2
            };
        }).ToList();
    }

    public IEnumerable<WeatherForecast> GetForecast() {
        return Forecast.ToArray();
    }
    // ...
}
csharp
// ...
builder.Services.AddSingleton<WeatherForecastService>();

See Also

GridContextMenuDefaultItemNames Class

GridContextMenuDefaultItemNames Members

DevExpress.Blazor Namespace