allora questa è la classe che estende datatable
codice:
public class MyDataTable : DataTable
{
public MyDataTable() { }
internal MyDataTable(string builder)
: base(builder)
{
//
// TODO: aggiungere qui la logica del costruttore
//
}
protected override void OnRowChanged(DataRowChangeEventArgs e)
{
//DataRow r = e.Row;
//e.Row.Field<int>(
int i = (int)e.Row.Field<int>(0);
int b = i * i;
e.Row.SetField<int>(0, b);
base.OnRowChanged(e);
}
}
e questa è la classe di prova
codice:
namespace ConsoleApplication1
{
class Program
{
DataColumn myDataColumn;
static void Main(string[] args)
{
MyDataTable myTable = new MyDataTable();
DataColumn myDataColumn;
myDataColumn = new DataColumn();
myDataColumn.DataType = Type.GetType("System.Int32");
myDataColumn.ColumnName = "id";
myTable.Columns.Add(myDataColumn);
//myTable.TableNewRow += new DataTableNewRowEventHandler(myTable_TableNewRow);
myTable.RowChanged += new DataRowChangeEventHandler(myTable_RowChanged);
DataRow row = myTable.NewRow();
row[0] = 1;
myTable.Rows.Add(row);
Console.WriteLine(row[0]);
Console.Read();
}
static void myTable_RowChanged(object sender, DataRowChangeEventArgs e)
{
throw new NotImplementedException();
}
}
}
Grazie per la pazienza