public static void DisconnectEventFromIObservableList(IObservableList aList, object aObject)
 {
     if ((aList == null) || (aObject == null))
     {
         return;
     }
     if (aObject is INotifyPropertyChanged)
     {
         (aObject as INotifyPropertyChanged).PropertyChanged -= aList.GetDefaultNotifyPropertyChangedHandler();
     }
     else
     {
         // Disconnect from all PropertyChangedEventHandler properties
         foreach (EventInfo ev in aObject.GetType().GetEvents())
         {
             if (ev.EventHandlerType is PropertyChangedEventHandler)
             {
                 ev.RemoveEventHandler(aObject, aList.GetDefaultNotifyPropertyChangedHandler());
             }
         }
     }
 }