Ho avuto recentemente lo stesso problema.
Premesso che non so quanto ne valga la pena clonare due oggetti tipo GridView, io in genere clono due oggetti/classi da me costruite. La prima cosa da fare è implementare l'interfaccia ICloneable esempio:
class NomeClasse : ICloneable
{
}
e come da specifiche dell'interfaccia bisogna implementare il metodo Clone().
Io proceduto così:
public object Clone()
{
return MemberwiseClone();
}
Questo ti effettua una Shallow Copy.
Eventualmente tu potresti avere bisogno di una Deep Copy.
In caso vuoi un po' di chiarezza sui due concetti leggi qui:
http://msdn2.microsoft.com/en-us/library/system.object.memberwiseclone.aspx
Nella parte Remarks.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/