C#中序列化实现深拷贝,实现DataGridView初始化刷新
来源:互联网 发布:新歌2016网络红歌情歌 编辑:程序博客网 时间:2024/06/08 15:07
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();});
0 0
- C#中序列化实现深拷贝,实现DataGridView初始化刷新
- C#通过序列化实现深拷贝
- C# 序列化实现类的深拷贝
- C#中DataGridView刷新
- C#对象的浅拷贝,深拷贝及利用序列化等多种方式实现深拷贝
- 如何通过序列化实现深拷贝
- 通过序列化实现深拷贝
- C#实现WinForm下DataGridView控件的拷贝和粘贴
- 如何实现DataGridView刷新数据?
- c#实现打印datagridview
- c# 深拷贝各种实现
- C#深拷贝 反射实现
- 使用序列化和反序列化实现深拷贝
- winform中实现DataGridView的打印,用c#实现
- 可序列化类型实现深拷贝方法(DeepCopy)
- java 序列化实现对象的深拷贝
- C#中如何实现对象的深拷贝问题
- 【术】c#中利用反射实现深拷贝
- 美化上传控件
- Ubuntu Python 环境配置
- Android手势检测 带你打造支持图片缩放、平移预览(下)
- SQL语句中的order by语句
- 【leetcode每日一题】25.Reverse Nodes in k-Group
- C#中序列化实现深拷贝,实现DataGridView初始化刷新
- 关于三极管常用电路
- 尺度空间理论
- UITableViewCell分割线从最左边开始和分割线颜色设置
- 实现一组功能的步骤
- AngularJS-自定义指令
- XML数据解析
- Source命令
- [刷题]Rehashing