i am implementing a custom model using a System.Data.DataTable, but get
this error:

Fatal error: C# instance has been wrongly GC'd for virtual 0xa3fa3f8->QAbstractItemModel::rowCount(const QModelIndex&) const call.

this is the code:

using System;
using Qyoto;
namespace qtnet
{
   
    public class TableModelSample
    {
       
        private QTableView view;
        private TableModel model;
        public TableModelSample()
        {
            System.Data.DataTable table = new System.Data.DataTable();
            table.Columns.Add("Name");
            table.Columns.Add("Age");
           
            for(int i=0 ; i<1000; i++){
               System.Data.DataRowView drv = table.DefaultView.AddNew();
               drv.BeginEdit();
               drv["Name"]=String.Format("name for {0} is = ", i );
               drv["Age"] =String.Format("age for {0} is = ", i );
               drv.EndEdit();
            }
           
            model= new TableModel(table.DefaultView);
            view = new QTableView();
            view.SetModel(model);
            view.WindowTitle = "Simple Table Model";
            view.Show();
        }

        public static int Main(string[] args){
              new QApplication(args);
              new TableModelSample();
              return QApplication.Exec();
        }
   
    }
   
    public class TableModel:QAbstractTableModel{
        System.Data.DataView model;
       
        public TableModel(System.Data.DataView model, QObject parent) : base(parent){
            this.model=model;
        }
       
        public TableModel(System.Data.DataView model):this(model,(QObject)null){
           
        }
       
       
        public override int RowCount (QModelIndex parent)
        {           
            return model.Count;
        }
       
        public override int ColumnCount(QModelIndex parent){
           return this.model.Table.Columns.Count;
        }

        public override QModelIndex Parent(QModelIndex index) {
          return new QModelIndex();
         }
        
         public override QVariant Data(QModelIndex index, int role) {
        if (!index.IsValid())
            return new QVariant();
       
        if (role != (int) Qt.ItemDataRole.DisplayRole)
            return new QVariant();
               
        return new QVariant(model[index.Row()][index.Column()].ToString());
      
       }
       
    }
}


what is wrong in my code ?


angel ignacio colmenares laguado