Maison > développement back-end > Tutoriel C#.Net > Introduction à la méthode d'implémentation de la copie approfondie et de l'actualisation initiale de DataGridView via la sérialisation en C#

Introduction à la méthode d'implémentation de la copie approfondie et de l'actualisation initiale de DataGridView via la sérialisation en C#

黄舟
Libérer: 2017-03-21 11:52:47
original
1580 Les gens l'ont consulté

L'éditeur suivant vous proposera un article C# sur la façon d'implémenter la copie approfondie via la sérialisation et d'initialiser l'actualisation de DataGridView. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour y jeter un œil.

La cellule où se trouve le DataGridView dans winfrom modifiera sa source de données lors de l'édition. Si nous rencontrons une telle situation, actualisez la source de données à son état d'origine. time Soit la source de données est réobtenue pour la liaison, soit les données du fichier original sont copiées puis liées La méthode de copie est présentée ici.

Le code approximatif est le suivant :

1 La paire cible doit être sérialisée et implémenter ICloneable. interface :

[Serializable]
public class DtoColumn : ICloneable2.实现接口方法Clone: 


public object Clone()
{
    using (MemoryStream ms = new MemoryStream(capacity))
    {
      object CloneObject;
      BinaryFormatter bf = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
      bf.Serialize(ms, this);
      ms.Seek(0, SeekOrigin.Begin);      
      CloneObject = bf.Deserialize(ms);       
      ms.Close();
      return CloneObject;
    }
}
Copier après la connexion

3. Actualiser en copiant une copie des données :

private List < dto.DtoColumn > DeepCloneData(List < dto.DtoColumn > rawdata) {
  return rawdata.Select(x = >x.Clone()).Cast < dto.DtoColumn > ().ToList()
}

this.dataGridView1.DoThreadPoolWork(() = >
{
  this.dataGridView1.DataSource = DeepCloneData(CloneInitialColumnData);
  this.dataGridView1.Refresh();
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal