界面控件Telerik UI for WinForms使用指南 - 数据绑定  填充(一)
Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件所有的UI for WinForms控件都具有完整的主题支持可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。Telerik UI for WinForms组件为可视化任何类型的数据提供了非常丰富的UI控件其中RadGridView是最常用的数据组件。本文主要深入研究数据绑定它是用记录填充网格的主要方法数据记录通常存储在服务器上或文件中。本文将重点分析可用于数据传输的不同文件或文本格式从绑定到DataTable的一般情况开始。绑定到DataTable将一些数据绑定到RadGridView的最简单方法是创建一个数据表用相应的类型定义一些列并添加一些带有单元格内容的行private void BindToDataTable() { DataTable dt new DataTable(); dt.Columns.Add(Id, typeof(int)); dt.Columns.Add(Name, typeof(string)); dt.Columns.Add(CreatedOn, typeof(DateTime)); for (int i 0; i 10; i) { dt.Rows.Add(i, Itemi, DateTime.Now.AddDays(i)); } this.radGridView1.DataSource dt; }绑定到JSONRadGridView不支持直接绑定到JSON但是可以将JSON内容转换为数据表然后将解析后的数据表设置为RadGridView控件的数据源。注意有必要添加对Json. NET的引用public partial class RadForm1 : Telerik.WinControls.UI.RadForm { public RadForm1() { InitializeComponent(); BindToJson(); this.radGridView1.BestFitColumns(); } private void BindToJson() { string json [ {id:10,name:User,add:false,edit:true,authorize:true,view:true}, { id:11,name:Group,add:true,edit:false,authorize:false,view:true}, { id:12,name:Permission,add:true,edit:true,authorize:true,view:true} ]; DataTable table Newtonsoft.Json.JsonConvert.DeserializeObjectDataTable(json); this.radGridView1.DataSource table; } }绑定到CSV逗号分隔值(CSV)文件是存储以表格结构格式保存的大量数据内容的一种简单方法它也可以很容易地解析为数据表从而再次用作网格的DataSource集合。public RadForm1() { InitializeComponent(); BindToCsv(); } private void BindToCsv() { bool isFirstRowHeader true; string path ..\..\sampleData.csv; string header isFirstRowHeader ? Yes : No; string pathOnly System.IO.Path.GetDirectoryName(path); string fileName System.IO.Path.GetFileName(path); string sql SELECT * FROM [ fileName ]; using (System.Data.OleDb.OleDbConnection connection new System.Data.OleDb.OleDbConnection( ProviderMicrosoft.Jet.OLEDB.4.0;Data Source pathOnly ;Extended Properties\Text;HDR header \)) using (System.Data.OleDb.OleDbCommand command new System.Data.OleDb.OleDbCommand(sql, connection)) using (System.Data.OleDb.OleDbDataAdapter adapter new System.Data.OleDb.OleDbDataAdapter(command)) { DataTable dataTable new DataTable(); dataTable.Locale CultureInfo.CurrentCulture; adapter.Fill(dataTable); this.radGridView1.DataSource dataTable; } }RadGridView能够显示分层数据其中主要场景可以列出如下自引用层次结构对象-关系层次结构(主细节)按需加载绑定到自引用层次结构数据内容由一个平面集合表示其中的层次关系由ID和父级的ID字段定义。因此每个记录都知道其父记录的ID可以构建嵌套结构。private void BindSelfReferenceHierarchy() { DataTable selfRefTable new DataTable(); selfRefTable.Columns.Add(Id, typeof(int)); selfRefTable.Columns.Add(ParentId, typeof(int)); selfRefTable.Columns.Add(Name, typeof(string)); selfRefTable.Rows.Add(1, 0, My Computer); selfRefTable.Rows.Add(2, 1, C:\); selfRefTable.Rows.Add(3, 2, Program Files); selfRefTable.Rows.Add(4, 3, Microsoft); selfRefTable.Rows.Add(5, 3, Telerik); selfRefTable.Rows.Add(6, 2, WINDOWS); selfRefTable.Rows.Add(7, 1, D:\); this.radGridView1.Relations.AddSelfReference(this.radGridView1.MasterTemplate, Id, ParentId); this.radGridView1.DataSource selfRefTable; }绑定到对象关系数据数据内容由两个(或根据层次结构深度最多N个)平面集合表示其中每个层次结构级别需要一个单独的数据集合和一个网格模板来存储数据。不同的网格级别用一个特定的关系连接称为GridViewRelation分别指向父级和子级。它链接父级的一个字段和子级的一个字段这与SQL表中的外键非常接近。下面的代码片段演示了如何构建Categories-Products对象关系层次结构private void BindToObjectRelational() { Random rand new Random(); DataTable categories new DataTable(); categories.Columns.Add(CategoryID, typeof(int)); categories.Columns.Add(Title, typeof(string)); categories.Columns.Add(CreatedOn, typeof(DateTime)); for (int i 0; i 5; i) { categories.Rows.Add(i, Master i, DateTime.Now.AddDays(i)); } DataTable productsTable new DataTable(); productsTable.Columns.Add(ProductID, typeof(int)); productsTable.Columns.Add(CategoryID, typeof(int)); productsTable.Columns.Add(Name, typeof(string)); productsTable.Columns.Add(UnitPrice, typeof(decimal)); for (int i 0; i 30; i) { productsTable.Rows.Add(i, rand.Next(0, 5), Product i, 1.25 * i); } this.radGridView1.MasterTemplate.DataSource categories; this.radGridView1.MasterTemplate.AutoSizeColumnsMode GridViewAutoSizeColumnsMode.Fill; GridViewTemplate productsLevel new GridViewTemplate(); productsLevel.DataSource productsTable; productsLevel.AutoSizeColumnsMode GridViewAutoSizeColumnsMode.Fill; this.radGridView1.MasterTemplate.Templates.Add(productsLevel); GridViewRelation relation new GridViewRelation(radGridView1.MasterTemplate); relation.ChildTemplate productsLevel; relation.RelationName CategoriesProducts; relation.ParentColumnNames.Add(CategoryID); relation.ChildColumnNames.Add(CategoryID); this.radGridView1.Relations.Add(relation); }

相关新闻

如何一次拿全B站完整评论数据:BilibiliCommentScraper上手教程与避坑指南

如何一次拿全B站完整评论数据:BilibiliCommentScraper上手教程与避坑指南

如何一次拿全B站完整评论数据:BilibiliCommentScraper上手教程与避坑指南 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据,包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.co…

2026/11/2 13:15:14 阅读更多 →
视频修复新神器 Stable Video Infinity:AI 让长视频不糊的完整实战指南

视频修复新神器 Stable Video Infinity:AI 让长视频不糊的完整实战指南

视频修复新神器 Stable Video Infinity:AI 让长视频不糊的完整实战指南 【免费下载链接】Stable-Video-Infinity [ICLR 26 Oral] Stable Video Infinity: Infinite-Length Video Generation with Error Recycling 项目地址: https://gitcode.com/GitHub_Trending/…

2026/11/6 1:30:40 阅读更多 →
从零到实战:500 余款免费 RPG Maker 插件,如何把一个“差口气“的项目救回来

从零到实战:500 余款免费 RPG Maker 插件,如何把一个“差口气“的项目救回来

从零到实战:500 余款免费 RPG Maker 插件,如何把一个"差口气"的项目救回来 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV RPGMakerMV 是面向 RPG…

2026/11/6 11:27:44 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/6 15:21:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/6 9:29:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/5 12:28:01 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/5 12:28:02 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/6 8:08:42 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/5 19:38:59 阅读更多 →

日新闻

周新闻

月新闻