C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法
发布时间 - 2026-01-10 23:09:26 点击率:次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初始化刷新的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# datagridview
# 序列化
# C#类的创建与初始化实例解析
# C#控制台基础 list<>初始化的两种方法
# c# 类成员初始化顺序的特殊情况
# 给大家
# 绑定
# 希望能
# 这个时候
# 这篇
# 小编
# 大家多多
# 单元格
# Serializable
# public
# csharp
# brush
# class
# DtoColumn
# MemoryStream
# ms
# capacity
# Clone
# object
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
详解Oracle修改字段类型方法总结
bing浏览器学术搜索入口_bing学术文献检索地址
如何在云主机快速搭建网站站点?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Windows Hello人脸识别突然无法使用
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Laravel如何使用Collections进行数据处理?(实用方法示例)
智能起名网站制作软件有哪些,制作logo的软件?
如何用PHP快速搭建CMS系统?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel怎么上传文件_Laravel图片上传及存储配置
JavaScript如何实现错误处理_try...catch如何捕获异常?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何在阿里云ECS服务器部署织梦CMS网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何使用Blade模板引擎?(完整语法和示例)
javascript基本数据类型及类型检测常用方法小结
如何快速生成橙子建站落地页链接?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何快速生成凡客建站的专业级图册?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Linux系统命令中tree命令详解
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
iOS UIView常见属性方法小结
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
网站制作壁纸教程视频,电脑壁纸网站?
如何用腾讯建站主机快速创建免费网站?
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
js代码实现下拉菜单【推荐】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
轻松掌握MySQL函数中的last_insert_id()
新三国志曹操传主线渭水交兵攻略
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
手机软键盘弹出时影响布局的解决方法
如何在Windows环境下新建FTP站点并设置权限?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
创业网站制作流程,创业网站可靠吗?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
如何自定义建站之星网站的导航菜单样式?
Python结构化数据采集_字段抽取解析【教程】
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Android 常见的图片加载框架详细介绍
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】

