Spread Windows Forms 13.0 Product Documentation
Spread Windows Forms 13.0 Product Documentation / Developer's Guide / Understanding the Underlying Models / Creating a Custom Sheet Model
In This Topic
    Creating a Custom Sheet Model
    In This Topic

    You can use a sheet model as a template for a new custom model. For example, consider making a custom data model. Using a custom data model requires creating a class that implements ISheetDataModel, then setting an instance of the class into the SheetView.Models.Data property.

    ISheetDataModel is the only interface required, assuming that you do not need any of the optional interfaces. For more information on the other interfaces, refer to Understanding the Optional Interfaces.

    Note: In BaseSheetDataModel, the Changed event is also implemented.

    In a few cases, you might need to create your own custom data model for performance reasons. For example, suppose you want to display a large table of computed values (such as an addition or multiplication table) that consists of a million rows by ten columns. If you used the default sheet data model, you would need to compute and store all ten million values, which would be consume a lot of time and memory.

    Instead, you might want to create your own custom data model, as shown in the following example.

    Example

    C#
    Copy Code
    for (r = 0; r < 1000000; r++)
    for ( c = 0; c < 10; c++)
    spread.Sheets[0].Cells[r,c].Value = r + c;

    Example

    C#
    Copy Code
    class ComputedDataModel : BaseSheetDataModel
    {
        public override int RowCount
        {
            get { return 1000000; }
        }
        public override int ColumnCount
        {
            get { return 10; }
        }
        public override object GetValue(int row, int column)
        {
            return row + column;
        }
    }