public static void SetModel <T>(this INotifyPropertyChanged viewModel, T model)
 {
     using (viewModel.Suspend())
     {
         var token = viewModel.Get <SuspenderToken>("EntityNullToken");
         if (token != null && model != null)
         {
             token.Dispose();
         }
         if (viewModel.Set(model, "Model"))
         {
             if (model == null)
             {
                 viewModel.Set <SuspenderToken>(viewModel.Suspend(), "EntityNullToken");
             }
         }
     }
 }
 public static void SetLinked <T>(this INotifyPropertyChanged viewModel, T view)
 {
     using (viewModel.Suspend())
     {
         var token = viewModel.Get <SuspenderToken>("EntityNullToken");
         if (token != null && viewModel != null)
         {
             token.Dispose();
         }
         if (viewModel.Set(view, "Linked"))
         {
             //if (model == null) viewModel.Set<SuspenderToken>(viewModel.Suspend(), "EntityNullToken");
         }
     }
 }