How to remove DefaultSheetDataModel changed event

Posted by: pasun2 on 29 January 2018, 12:09 am EST

    • Post Options:
    • Link

    Posted 29 January 2018, 12:09 am EST

    I added “changed” event to DefaultSheetDataModel.

    and the I calculated dataTable value when changed event was fired and set the calculated value to dataTable.

    by the way there were some problems.

    the setting the calculated value occured another “changed event”

    so I tried to remove the event before setting value.

    (ex dsdm.Changed -= SpdLine_Changed

    or dsdm.Changed -= new FarPoint.Win.Spread.Model.SheetDataModelEventHandler(SpdLine_Changed);

    but that was not work

    // ** source code

    FarPoint.Win.Spread.Model.DefaultSheetDataModel dsdm = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)siLine.Sheet(SpdSheet.shtLine).Models.Data;

    dsdm.Changed += new FarPoint.Win.Spread.Model.SheetDataModelEventHandler(SpdLine_Changed);

    private void SpdLine_Changed(object sender, SheetDataModelEventArgs e) {

            FarPoint.Win.Spread.Model.DefaultSheetDataModel dsdm = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)siLine.Sheet(SpdSheet.shtLine).Models.Data;            
            dsdm.Changed -= SpdLine_Changed
    

    // Calculate and set value

     dsdm.Changed += new FarPoint.Win.Spread.Model.SheetDataModelEventHandler(SpdLine_Changed);
    

    }

  • Posted 30 January 2018, 3:31 am EST

    Hello,

    I am having no trouble removing the dsdm_changed event handler. I used the code as follows:

    
    FarPoint.Win.Spread.Model.ISheetDataModel isdm;
            private void Form1_Load(object sender, EventArgs e)
            {          
                isdm = (FarPoint.Win.Spread.Model.ISheetDataModel)fpSpread1.ActiveSheet.Models.Data;
                isdm.Changed += Isdm_Changed;
            }
            private void Isdm_Changed(object sender, FarPoint.Win.Spread.Model.SheetDataModelEventArgs e)
            {
                MessageBox.Show("test");
                isdm.Changed -= Isdm_Changed;
                fpSpread1.ActiveSheet.Cells[0, 0].Text = "test";          
            }
    

    Please refer to the attached sample application .

    Thanks,

    Deepak SharmaSpreadWinDSDMChanged.zip

  • Posted 30 January 2018, 8:54 pm EST

    ok it was solved…

    I changed

    " dsdm.Changed += new

    FarPoint.Win.Spread.Model.SheetDataModelEventHandler(SpdLine_Changed) "

    to " dsdm.Changed += SpdLine_Changed "

    and then it worked correctly.

    I don’t know yet the role of “SheetDataModelEventHandler”

    now I will study SheetDataModelEventHandler class…

    anyway your answer is big help for me…

    thanks deepak.sharma.

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels