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!