Table authoring service

    Create and edit tables through the same public authoring service used by native commands. Operations act on the current table or the explicitly selected rectangular cell region.

    Use it for application-owned table commands and inspect selected-cell state before merging or splitting.

    Actual rectangular cell selection in the Avalonia table authoring surface.
    Actual rectangular cell selection in the Avalonia table authoring surface.

    Use it in your application

    Await insertion before subsequent table operations. A document or selection change can invalidate a pending table request.

    Merge only a valid rectangular region belonging to one table. Inspect spans and the visible result after structural edits.

    Read-only mode rejects authoring. Export after the command completes to persist the actual accepted table structure.

    await editor.TableAuthoringService.InsertTableAsync(2, 2);
    var selected = await editor.TableAuthoringService.GetSelectedCellsAsync();

    Members

    These signatures come from the delivered 1.0.2 assemblies and XML documentation. Cancellation tokens can be supplied to awaited operations. Follow the source-specific notes above when adapting a WPF integration.

    MemberSignature
    DeleteColumnAsyncTask<EditorSnapshot> DeleteColumnAsync(CancellationToken cancellationToken)
    DeleteRowAsyncTask<EditorSnapshot> DeleteRowAsync(CancellationToken cancellationToken)
    DeleteTableAsyncTask<EditorSnapshot> DeleteTableAsync(CancellationToken cancellationToken)
    GetSelectedCellsAsyncTask<TableCellSelection> GetSelectedCellsAsync(CancellationToken cancellationToken)
    InsertColumnAsyncTask<EditorSnapshot> InsertColumnAsync(InsertPositions position, CancellationToken cancellationToken)
    InsertRowAsyncTask<EditorSnapshot> InsertRowAsync(InsertPositions position, CancellationToken cancellationToken)
    InsertTableAsyncTask<EditorSnapshot> InsertTableAsync(int rows, int columns, IReadOnlyDictionary<string, string> styles, CancellationToken cancellationToken)
    MergeCellsAsyncTask<EditorSnapshot> MergeCellsAsync(CancellationToken cancellationToken)
    MergeWithRightCellAsyncTask<EditorSnapshot> MergeWithRightCellAsync(CancellationToken cancellationToken)
    SelectCellsAsyncTask<EditorSnapshot> SelectCellsAsync(int row, int column, int rowCount, int columnCount, CancellationToken cancellationToken)
    SetCellPropertiesAsyncTask<EditorSnapshot> SetCellPropertiesAsync(TableCellDialogState properties, CancellationToken cancellationToken)
    SetCellStylesAsyncTask<EditorSnapshot> SetCellStylesAsync(IReadOnlyDictionary<string, string> styles, CancellationToken cancellationToken)
    SetTablePropertiesAsyncTask<EditorSnapshot> SetTablePropertiesAsync(TableDialogState properties, CancellationToken cancellationToken)
    SetTableStylesAsyncTask<EditorSnapshot> SetTableStylesAsync(IReadOnlyDictionary<string, string> styles, CancellationToken cancellationToken)
    SplitCellAsyncTask<EditorSnapshot> SplitCellAsync(CancellationToken cancellationToken)

    Continue with

    Last updated on Oct 18, 2026

    Put this into practice.

    Start with the C# Avalonia sample. Restore this edition's package and install the native browser prerequisites before running it.

    Prefer a guided look? Book a free live demo with our engineers - live on Zoom or Teams, never a chatbot.