Я согласен, что разочаровывает то, что эти классы наследуются непосредственно от EventArgs.Кажется логичным, что они наследуют от одного и того же подкласса EventArgs, учитывая не только их общие свойства, но и тот факт, что в большинстве случаев вы используете DetailsView для вставки, вы также используете его для обновления.
Как говоритсяВы хотите сделать, может быть достигнуто с небольшим количеством динамического C #.Это довольно круто, и, возможно, даже немного элегантно, хотя и немного дороже.
Попробуйте это: (требуется C # 4.0)
protected void DetailsView1_Inserted(Object sender, DetailsViewInsertedEventArgs e)
{
ProcessDetailsViewEventArgs(e);
}
protected void DetailsView1_Updated(Object sender, DetailsViewUpdatedEventArgs e)
{
ProcessDetailsViewEventArgs(e);
}
private void ProcessDetailsViewEventArgs(dynamic e)
{
if (e == null)
return;
if (e.Exception != null)
{
e.ExceptionHandled = HandleException(e.Exception);
e.KeepInEditMode = e.ExceptionHandled;
}
}