Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Methode zur Implementierung von Deep Copy und anfänglicher Aktualisierung von DataGridView durch Serialisierung in C#

Einführung in die Methode zur Implementierung von Deep Copy und anfänglicher Aktualisierung von DataGridView durch Serialisierung in C#

黄舟
黄舟Original
2017-03-21 11:52:471485Durchsuche

Der folgende Editor bringt Ihnen einen Artikel C# darüber, wie Sie Deep Copy durch Serialisierung implementieren und die Aktualisierung von DataGridView initialisieren. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen.

Die Zelle, in der sich die DataGridView in winfrom befindet, ändert beim Bearbeiten ihre Datenquelle. Wenn eine solche Situation auftritt, aktualisieren Sie die Datenquelle auf den ursprünglichen Zustand Zeit Entweder wird die Datenquelle zum Binden erneut abgerufen oder die Daten der Originaldatei werden kopiert und dann gebunden. Die Kopiermethode wird hier vorgestellt.

Der ungefähre Code lautet wie folgt:

1 Das Zielpaar muss serialisiert werden und ICloneable implementieren Schnittstelle:

[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;
    }
}

3. Aktualisieren Sie durch Kopieren einer Datenkopie:

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();
});

Das obige ist der detaillierte Inhalt vonEinführung in die Methode zur Implementierung von Deep Copy und anfänglicher Aktualisierung von DataGridView durch Serialisierung in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn