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