2011-12-14 2 views
-1

Если в IEditableObject.EndEdit выбрано исключение (если установлено из WPF Datagrid с использованием привязки).Framework исключает исключение из IEditableObject.EndEdit

Исключением является привязка к структуре, и это сообщение отображается в консоли «Первое исключение случайного типа« System.NullReferenceException »..».

Я бы хотел, чтобы это исключение было более явным, поскольку я «обрабатываю» все необработанное исключение, используя DispatcherUnhandledException и AppDomain.CurrentDomain.UnhandledException. Где я регистрирую исключение и информирую пользователя перед закрытием приложения.

Нужно ли использовать какой-то взломать, например добавить try-catch для каждого EndEdit и перестроить исключение, используя Application.Dispatcher?

+0

Что вы связываете с DataGrid.ItemSource? –

ответ

0

Вот что я в конечном итоге делает

public class Editable : NotificationObject, IEditableObject 
{ 
... 
    public void EndEdit() 
    { 
      try 
      { 
       ... 
      } 
      catch (Exception e) 
      { 
       ExceptionUtils.ThrowOnUIThread(e); 
      } 
     } 
    } 
} 


public static class ExceptionUtils 
{ 
    public static void ThrowOnUIThread(Exception exception) 
    { 
     exception.PreserveStackTrace(); 
     Application.Current.Dispatcher.BeginInvoke(new Action(() => { throw exception; })); 
    } 
} 

О PreserveStackTrace посмотреть question.

Смежные вопросы