public void Add(T item)
 {
     if (CommandRecording)
     {
         CommandDispatcher.AddAndExecute(new CollectionUniqueExecutor <T>(this, new CollectionUniqueCommand <T>(CollectionUniqueChanged.Add, item)));
     }
     else
     {
         AddForce(item);
     }
 }
 public bool Remove(T item)
 {
     if (CommandRecording)
     {
         CommandDispatcher.AddAndExecute(new CollectionUniqueExecutor <T>(this, new CollectionUniqueCommand <T>(CollectionUniqueChanged.Remove, item)));
         return(true);
     }
     else
     {
         return(RemoveForce(item));
     }
 }