在WPF中,如果我们已经知道某XML的格式,将其数据通过数据绑定在TreeView中呈现出来是非常简单的。通过Xpath和HierarchicalDataTemplate很容易实现。

但是,有时我们还需要将一个未知格式的xml文件绑定到TreeView。其实IE及那些XML工具都有这种功能:任意打开一个xml文件,都能以树型的格式的显示。

这种就是一种通用型的XML格式绑定了,由于XML格式未知,无法根据XPATH来生成模板,往往有点无从下手的感觉。这里给出了一个简单的示例:

代码

<HierarchicalDataTemplate x:Key="NodeTemplate">
<TextBlock x:Name="text" Text="?" />
<HierarchicalDataTemplate.ItemsSource>
<Binding XPath="child::node()" />
</HierarchicalDataTemplate.ItemsSource>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=NodeType}" Value="Text">
<Setter TargetName="text" Property="Text" Value="{Binding Path=Value}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
<Setter TargetName="text" Property="Text" Value="{Binding Path=Name}"></Setter>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
<XmlDataProvider x:Key="xmlDataProvider">
<x:XData>
<Root xmlns="">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
</Root>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid >
<TreeView Name="treeView1" 
Background="AliceBlue" 
ItemsSource="{Binding Source={StaticResource xmlDataProvider}, XPath=*}" 
ItemTemplate= "{StaticResource NodeTemplate}"/>
</Grid> 

这个例子比较简单,基本上看着就知道是怎么回事了。当然,其也只实现了最基本的信息的显示,在这里只是抛砖引玉,要实现更详细的信息显示还得进一步完善。

转载于:https://www.cnblogs.com/TianFang/archive/2010/02/18/1669078.html

绑定任意格式的XML文档到WPF的TreeView相关推荐

  1. 掌握XML系列(四)---创建格式良好的XML文档

    掌握XML系列(四)---创建格式良好的XML文档 前言:创建良好格式的XML文档,虽然写了这些,其实,等到大家真正的看完之后美酒会发现,其实也很简单的,我们这里所做的是带着大家全面的看看怎么样创建. ...

  2. libxml -- 解析 XML 文档

    参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...

  3. XML文档类型定义DTD

    DTD概述 DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性 DTD定义了XML文档可用的词汇(元素和属性的名称)和结构: 元素名称,包括根元素 元素的属性及属性 ...

  4. html5 xml文本编辑,简介XML文档的阅读与编辑

    阅读器以使用简单的文本编辑器或者任意浏览器查看 XML 文档.大多数主流浏览器都支持 XML.可以通过双击 XML 文档(如果是一个本地文件)或者在地址栏输入 URL 路径(如果文件位于服务器上)的方 ...

  5. 关于XML文档的讲解

    1        XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...

  6. XML第二讲:格式正规的XML文档、XML文档的元素、属性、实体深度详解

    1. 对比XML与HTML下图所示: 从图中可以很好的判断出XML的优越性,XML更能显示出清晰的数据结构信息 2. XML与 HTML的区别 1) 元标记:表示从标记上面就可以描述内容本身是什么,比 ...

  7. xml 文本转json java_java将XML文档转换成json格式数据

    本篇文章主要介绍了java将XML文档转换成json格式数据的示例,希望能帮助到大家. 功能 将xml文档转换成json格式数据 说明 依赖包: 1. jdom-2.0.2.jar : xml解析工具 ...

  8. Office Open XML 文档格式

    Office Open XML文档格式的详细说明以及规格是在2006年欧洲计算机制造商协会批准的一项标准, 编号是Ecma376, 到发稿时为止已经通过了ISO国际标准化组织的评审成为了一项国际标准I ...

  9. 使用xsl将xml转化为HTML文档,基于XSL将XML文档转换为HTML格式文档的方法与流程

    技术特征: 1.一种基于XSL将XML文档转换为HTML格式文档的方法,其特征在于,包括: S1,新建一个与XML文档同名的HTML格式文档: S2,定义转换算法,实现XML文档到HTML格式文档的转 ...

最新文章

  1. C语言复习2_运算符
  2. LeetCode 880. 索引处的解码字符串(找规律)
  3. 漫步微积分三十——定积分的性质
  4. docker 解决php 502,Docker里两个php容器一个正常访问,一个出现502 Bad Gateway nginx/1.17.8。...
  5. halcon中如何生成椭圆_Halcon拟合系列(2)直线/圆/椭圆/矩形拟合算子
  6. AcWing 900. 整数划分(完全背包计数问题)
  7. Linux音频驱动-Card创建
  8. css学习25:设置文本样式
  9. html圆圈男女,html 圆形符号
  10. Xmanager 6 激活
  11. Excel VBA 根据单元格内容更改工作表名称
  12. DDIM代码详细解读(3):核心采样代码、超分辨率重建
  13. 【戒焦戒躁,can win】Linux--inode
  14. 大数据学习路线思维导图
  15. word中行与行间距大
  16. 新版MDN正式上线,还有收费版的MDN Plus,下个月也即将到来
  17. 实用小工具 -- 在线查看别人网站流量
  18. lrtimelapse 5.2.1中文版 附安装教程
  19. e签宝认证服务API PHP请求签名鉴权生成
  20. 微信小程序自定义组件的使用步骤

热门文章

  1. ICCV 2021 |VisDrone2021 无人机视觉挑战赛启动
  2. 清华博士直播 | 如何让AI模型更皮实、更稳定?
  3. ECCV 2020,一种灵活高效的权重生成网络框架
  4. 一行命令搞定图像质量评价
  5. 【项目合作】低清老视频转高清,视频超分辨
  6. 英伟达RTX 3080值不值得抢?在TensorFlow上训练了卷积网络
  7. php如何利用soap查看函数,使用PHP soap函数的自定义标题
  8. 计算机主板知识,小白必看电脑主板知识扫盲,主板是什么?有什么用?
  9. 牛顿插值实验报告C语言,牛顿插值C语言.doc
  10. linux系统在硬盘上安装程序,怎么样用硬盘上的镜象文件来安装Linux系统?我都进入安装界面了,但是那个安装程序好像找不到那几个镜象文件,请指点...