Имейте в виду, что (по крайней мере, в .NET 2.0) я нашел несколько мест в структуре (в частности, в классе DataTable), где метод OnFoo вызывается только , когда соответствующее событие Foo было обрабатываются! Это противоречит рекомендациям по проектированию каркаса, но мы застряли с ним.
Я справился с этим, обработав событие с помощью фиктивного обработчика где-то в классе, например:
public class MyDataTable : DataTable
{
public override void EndInit()
{
base.EndInit();
this.TableNewRow += delegate(object sender, DataTableNewRowEventArgs e) { };
}
protected override void OnTableNewRow(DataTableNewRowEventArgs e)
{
base.OnTableNewRow(e);
// your code here
}
}