Back to Devexpress

ISpreadsheetCommandFactoryService Interface

officefileapi-devexpress-dot-xtraspreadsheet-dot-services-c0d58c2b.md

latest3.8 KB
Original Source

ISpreadsheetCommandFactoryService Interface

A service which is used to create Spreadsheet commands.

Namespace : DevExpress.XtraSpreadsheet.Services

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

NuGet Package : DevExpress.Spreadsheet.Core

Declaration

csharp
[ComVisible(true)]
public interface ISpreadsheetCommandFactoryService
vb
<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

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

}
vb
Public Class CustomService
    Inherits SpreadsheetCommandFactoryServiceWrapper

    Public Sub New(ByVal service As ISpreadsheetCommandFactoryService)
        MyBase.New(service)
    End Sub
    Public Property Control() As SpreadsheetControl

    Public Overrides Function CreateCommand(ByVal id As SpreadsheetCommandId) As SpreadsheetCommand
        If id = SpreadsheetCommandId.FormatClearContents OrElse id = SpreadsheetCommandId.FormatClearContentsContextMenuItem Then
            Return New CustomFormatClearContentsCommand(Control)
        End If

        Return MyBase.CreateCommand(id)
    End Function

End Class

See Also

ISpreadsheetCommandFactoryService Members

Services in WinForms Spreadsheet

How to: Replace Built-In Command with a Custom Command

DevExpress.XtraSpreadsheet.Services Namespace