C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法
2017-02-19 16:33
531 查看
winfrom中DataGridView在的单元格在编辑时候会修改它的数据源的,如果我们遇到这样一种情景,刷新数据源到原始状态,这个时候要么数据源的重新获取绑定,要么通过拷贝一份原始档的数据再绑定处理,这里介绍拷贝方式处理。
大致代码如下:
1.目标对需要序列化,并实现ICloneable 接口:
[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. 通过拷贝一份数据来达到刷新的目的:
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(); });
以上这篇C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- C#运用FileInfo类实现拷贝文件的方法
- C#对象的浅拷贝,深拷贝及利用序列化等多种方式实现深拷贝
- C#实现windows form拷贝内容到剪贴板的方法
- C#通过序列化实现深拷贝
- C#实现DataGridView控件行列互换的方法
- DataGridView中某一行的某一列及当前行的选取方法(C#实现)
- C#实现屏幕拷贝的方法
- C#通过指针实现快速拷贝的方法
- C#实现刷新桌面的方法
- C#通过序列化实现深拷贝
- C#实现Xml序列化与反序列化的方法
- 可序列化类型实现深拷贝方法(DeepCopy)
- C#自定义序列化ISerializable的实现方法
- C# 序列化实现类的深拷贝
- [C#]datagridView实现的数据联动时selectionChanged事件发生多次的解决方法
- C#中序列化实现深拷贝,实现DataGridView初始化刷新
- C#分页最好的实现方法C#-DataGridView分页功能的实现(存储过程实现)
- C#实现绑定DataGridView与TextBox之间关联的方法
- 解决用序列化方式实现对象拷贝时出的异常解决方法
- C#使用WebService结合jQuery实现无刷新翻页的方法