2009-09-30 9 views
0

Je voudrais cloner un UltraGridRow dans une nouvelle instance d'UltraGridRow et changer deux cellules seulement. Ensuite, je voudrais ajouter cette nouvelle instance UltraGridRow à mon groupe.Comment cloner un UltraGridRow (Infragistics)?

Je cherche un moyen de ne pas avoir à parcourir chaque cellule une par une pour les copier dans la nouvelle instance.

Existe-t-il un moyen intelligent et efficace de le faire?

Merci beaucoup, Kave

+0

La réponse fournie ici par [lagerdalek] (http://stackoverflow.com/users/5302/lagerdalek) devrait travailler pour vous ... [http: // stackoverflow. com/questions/78536/cloning-objets-en-c] (http://stackoverflow.com/questions/78536/cloning-objects-in-c) –

Répondre

0

Le UltraGridRow a une méthode CopyFrom qui devrait faire l'affaire (documentation). Voici un test pour votre scénario:

[Test] 
public void CloneRowCellsTest() 
{ 
    UltraGridRow objSource = new UltraGridRow(); 
    objSource.Cells.Add(new UltraGridCell("Original value for cell 0")); 
    objSource.Cells.Add(new UltraGridCell("Original value for cell 1")); 

    UltraGridRow objDestination = new UltraGridRow(); 
    objDestination.CopyFrom(objSource); 
    objDestination.Cells[1].Value = "New value for cell 1"; 

    Assert.AreEqual(objSource.Cells.Count, objDestination.Cells.Count); 
    Assert.AreEqual("Original value for cell 0", objDestination.Cells[0].Value); //Ensure that the value was copied 
    Assert.AreEqual("New value for cell 1", objDestination.Cells[1].Value);  //Ensure that the new value was set 
    Assert.AreEqual("Original value for cell 1", objSource.Cells[1].Value);  //Ensure that the original was unchanged 
} 
+0

Merci pour votre réponse. Je pense que c'est la solution. BUt Je ne peux pas l'appliquer car dans Infragistics 2006, il ne semble pas y avoir de CopyFrom(). Mais j'espère que lorsque nous passerons à Noël, je serais capable de le faire de cette façon. Ce qui est beaucoup moins de code à écrire ... – Houman

Questions connexes