/// <summary>
 ///   Lazy initialization of the view
 /// </summary>
 /// <returns>Actual view</returns>
 private GenericView GetView()
 {
     lock (LockObject)
     {
         if (_view != null)
             return _view;
         _view = new GenericView();
         _view.Closed += (sender, e) =>
                         {
                             if (Closed != null)
                                 Closed.Invoke(sender, e);
                             _view = null;
                         };
         _view.Closing += (sender, e) =>
                          {
                              if (Closing != null)
                                  Closing.Invoke(sender, e);
                          };
         return _view;
     }
 }
 public void Close()
 {
     GetView().Close();
     _view = null;
 }