//Override the Assign method
 public override void Assign(RepositoryItem item)
 {
     BeginUpdate();
     try {
         base.Assign(item);
         RepositoryItemCustomEdit source = item as RepositoryItemCustomEdit;
         if (source == null)
         {
             return;
         }
         useDefaultMode = source.UseDefaultMode;
     }
     finally {
         EndUpdate();
     }
 }
 //The static constructor that calls the registration method
 static CustomEdit()
 {
     RepositoryItemCustomEdit.RegisterCustomEdit();
 }