本文摘自PHP中文网,作者黄舟,侵删。
下面小编就为大家带来一篇C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧winfrom中DataGridView在的单元格在编辑时候会修改它的数据源的,如果我们遇到这样一种情景,刷新数据源到原始状态,这个时候要么数据源的重新获取绑定,要么通过拷贝一份原始档的数据再绑定处理,这里介绍拷贝方式处理。
大致代码如下:
1.目标对需要序列化,并实现ICloneable 接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [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. 通过拷贝一份数据来达到刷新的目的:
1 2 3 4 5 6 7 8 9 | 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#多线程之线程同步(图文)
C#中textbox输入框自动提示、自动完成、自动补全功能的具体详解(图文)
C#开发实例-订制屏幕截图工具(五)针对拖拽时闪烁卡顿的优化
C#中tostring数据类型格式大全(千分符)总结
详解C#接口在派生类和外部类中的调用方法示例
实现C#遍历文件夹及子目录下所有图片的示例代码分享
C#执行原理深入解析(图文)
C#计算标准偏差相当于excel中的stdev函数的代码案例
C#中的委托实例代码详解(图文)
文件路径和文件夹路径在C#中使用浏览按钮获得的方法
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » C#中序列化实现深拷贝和DataGridView初始化刷新的方法介绍