在WPF中绑定XML到DataGrid需先转为支持绑定的数据源:用DataTable.ReadXml()适合结构规整XML,自动建列;或用LINQ to XML解析为自定义对象集合,类型安全、灵活可控。

在WPF中把XML数据绑定到DataGrid,核心是把XML转换成支持绑定的数据源(如DataTable或自定义对象集合),再设置DataGrid.ItemsSource。直接绑定XDocument或XmlDocument不行,因为它们不实现IEnumerable或没提供属性供自动列生成。
DataTable.ReadXml()能直接从XML字符串、文件或流解析出表结构和数据,天然支持WPF绑定,且DataGrid.AutoGenerateColumns="True"可自动建列。
<items><item>...</item><item>...</item></items>)// 假设 XML 字符串如下:
string xml = @"<Items>
<Item><Name>苹果</Name><Price>5.2</Price></Item>
<Item><Name>香蕉</Name><Price>3.8</Price></Item>
</Items>";
DataTable dt = new DataTable();
using (var reader = XmlReader.Create(new StringReader(xml)))
{
dt.ReadXml(reader); // 自动推断列名和类型
}
dataGrid1.ItemsSource = dt.DefaultView; // 绑定 DataView,支持排序/筛选
先定义与XML元素一一对应的C#类,再用XDocument解析并投影为List<t></t>,这样能享受属性名、类型安全和绑定路径控制。
需有公共属性,命名尽量匹配XML节点名(大小写敏感)Elements()取所有同级项,Element("xxx")?.Value安全取值public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}
// 解析
var doc = XDocument.Parse(xml);
var products = doc.Root.Elements("Item")
.Select(x => new Product
{
Name = x.Element("Name")?.Value,
Price = decimal.TryParse(x.Element("Price")?.Value, out var p) ? p : 0
}).ToList();
dataGrid1.ItemsSource = products;
绑定后还需配好XAML,否则可能不显示或列错乱:
QoQo
QoQo是一款专注于UX设计的AI工具,可以帮助UX设计师生成用户角色卡片、用户旅程图、用户访谈问卷等。
172
查看详情
AutoGenerateColumns="True":让DataGrid根据数据源属性自建列(对DataTable或public属性有效)Binding Path="PropertyName",比如<datagridtextcolumn header="名称" binding="{Binding Name}"></datagridtextcolumn>
Name或绑定到ViewModel属性,方便后台赋值避免踩坑:
Price ($)),建议预处理或改用自定义类INotifyPropertyChanged(仅动态更新需要)DataRowState,自定义类需实现INotifyPropertyChanged和集合变更通知(如用ObservableCollection<t></t>)基本上就这些。用DataTable最快上手,用自定义类+LINQ to XML更可控、易维护。选哪个取决于XML结构稳定性和后续扩展需求。
以上就是C#怎么把XML绑定到WPF的DataGrid的详细内容,更多请关注其它相关文章!
# 再用
# 怀化旅游网站建设需要
# 建设网站首页登陆
# 安徽网站建设报价方案
# 贺州企业网站建设价位
# 昆山网站建设工作推荐
# 搜狗seo网站优化推荐推广
# 品牌网站优化常识总结与反思
# 玉环全网营销推广
# 谭坊seo优化
# 江苏品牌整合营销推广
# 别忘了
# 自带
# 苹果
# 解决问题
# 中文网
# 相关文章
# 多个
# 意味着什么
# 自定义
# 绑定
# c#类
# c#
# xml解析
# 常见问题
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法
韩小圈网页版PC端入口 韩小圈网页版官方网站入口
智慧职教mooc平台登录网址 智慧职教mooc官网直达
告别阻塞等待:如何使用GuzzlePromises优雅处理PHP异步操作,提升应用响应速度
键盘保修需要什么_键盘售后维修流程
研招网官方网站招生平台入口_中国研究生招生信息网官网登录
蛙漫2(台版)正版官网 2025免费网页版分享
Lar*el 中高效执行多列更新:单次查询实现
快手缓存清理方法
《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局
宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?
《一起考教师》账号注销方法
AO3中文版手机快速通道_AO3最新稳定链接更新
家里的小飞虫总是不断,用什么方法可以彻底根除?
《大润发优鲜》充值方法介绍
如何定制PrimeNG Sidebar的背景颜色
无人机考证官网 中国民航无人机考证官网登录入口
抖音视频如何添加标题?添加标题有哪些好处?
C++ cast类型转换总结_C++ reinterpret_cast与const_cast的使用
《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略
QQ邮箱注册地址 免费获取QQ邮箱账号
Win10截图远程协助 Win10远程桌面截屏法【场景应用】
如何在CSS中实现盒模型多列间距_grid-gap与padding结合
支付宝网页版在线入口 支付宝官网电脑登录入口
驱动人生:游戏修复指南
电脑视频号|直播|如何分享屏幕
如何在CSS中使用absolute实现登录弹窗居中_transform translate结合
疯狂小鸟微信小游戏入口 疯狂小鸟网页版秒玩
《万兴喵影》导出视频方法
wps文字怎么设置文字环绕图片的方式_wps文字如何设置文字环绕图片方式
风车动漫官网首页入口登录 风车动漫在线观看正版地址
sublime怎么快速在浏览器中预览HTML_sublime配置View in Browser教程
mail.qq.com登录入口 QQ邮箱网页版直达
如何编写一个符合 composer 规范的 post-install-cmd 脚本?
DeepSeek超全面指南:入门必看
管理打开的编辑器:固定、分组和关闭技巧
《花瓣》创建专辑方法
iCloud官方网站 iCloud网页版在线登录入口
composer 提示 "requires ext-soap" 缺少 SOAP 扩展怎么办?
行者app怎样导出日志
《爱笔思画x》涂色教程
《金山词霸》语音翻译方法
《书耽》更换手机号方法
优化CSS动画与J*aScript定时器协同:构建稳定Toast提示
个人所得税办理入口 个人所得税综合所得年度汇算入口
海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接
QQ邮箱PC端登录页面_QQ邮箱网页版登录界面
如何取消数字签名
139邮箱登录入口官网 139邮箱登录入口官网网址
VS Code中的Tailwind CSS IntelliSense插件使用技巧
2025-12-15
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。