Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

ISpreadsheetCommandFactoryService Interface

A service which is used to create Spreadsheet commands.

Namespace: DevExpress.XtraSpreadsheet.Services

Assembly: DevExpress.Spreadsheet.v24.2.Core.dll

NuGet Package: DevExpress.Spreadsheet.Core

#Declaration

[ComVisible(true)]
public interface ISpreadsheetCommandFactoryService

The following members return ISpreadsheetCommandFactoryService objects:

#Remarks

All commands in the SpreadsheetControl are created using the command factory service. You can substitute the default command factory service with its descendant, designed to create a custom command instead of the default command. Subsequently, the specified custom command is used in all SpreadsheetControl operations instead of the original command.

To substitute a default command factory service, create a class descending from the SpreadsheetCommandFactoryServiceWrapper class. Do not implement the ISpreadsheetCommandFactoryService interface directly in your class.

The following code snippet demonstrates a custom service used to substitute for the Clear Contents formatting commands located in Ribbon and context menu with a custom command.

View Example

public class CustomService : SpreadsheetCommandFactoryServiceWrapper {
    public CustomService(ISpreadsheetCommandFactoryService service)
        : base(service) {
    }
    public SpreadsheetControl Control {get;set;}

    public override SpreadsheetCommand CreateCommand(SpreadsheetCommandId id)
    {
        if (id == SpreadsheetCommandId.FormatClearContents || id == SpreadsheetCommandId.FormatClearContentsContextMenuItem)
            return new CustomFormatClearContentsCommand(Control);

        return base.CreateCommand(id);
    }

}
See Also