WPF 使用XML作为绑定源时Xaml注意事项
直接在xaml定义时xml时应该注意的!
xml数据
<?xml version="1.0" encoding="utf-8"?>
<StringList >
<Srtring Id="1">
<Name>A</Name>
<Age>10</Age>
<Nub>001</Nub>
</Srtring>
<Srtring Id="2">
<Name>B</Name>
<Age>20</Age>
<Nub>002</Nub>
</Srtring>
<Srtring Id="3">
<Name>C</Name>
<Age>30</Age>
<Nub>003</Nub>
</Srtring>
<Srtring Id="4">
<Name>D</Name>
<Age>40</Age>
<Nub>004</Nub>
</Srtring>
<Srtring Id="5">
<Name>A</Name>
<Age>50</Age>
<Nub>005</Nub>
</Srtring>
</StringList>
如果直接在Xaml页面中定义则是:
使用XmlDataProvider,并设置key,以及Xpath的源,xpath则是xml在被绑定时起始数据的起点,但不包括自身(不设置也可以,但是需要在设置绑定时设置)
也就是xpath设定为StringList,绑定时的起点则是String
且注意的是:XAML页面中不可以包含<?xml version="1.0" ?>字样,会报错。还有需要在xml根部加上xmlns=""
例子:
<Window.Resources>
<XmlDataProvider x:Key="xmlData" >
<x:XData>
<StringList xmlns="">
<String Id="1">
<Name>A</Name>
<Age>10</Age>
<Nub>001</Nub>
</String>
<String Id="2">
<Name>B</Name>
<Age>20</Age>
<Nub>002</Nub>
</String>
<String Id="3">
<Name>C</Name>
<Age>30</Age>
<Nub>003</Nub>
</String>
<String Id="4">
<Name>D</Name>
<Age>40</Age>
<Nub>004</Nub>
</String>
<String Id="5">
<Name>A</Name>
<Age>50</Age>
<Nub>005</Nub>
</String>
</StringList>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<ListView ItemsSource="{Binding Source={StaticResource xmlData},XPath=StringList/*}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="60" DisplayMemberBinding="{Binding XPath=Name}" />
<GridViewColumn Header="Age" Width="60" DisplayMemberBinding="{Binding XPath=Age}" />
<GridViewColumn Header="Nub" Width="60" DisplayMemberBinding="{Binding XPath=Nub}" />
</GridView>
</ListView.View>
</ListView> </Grid>
如果想要获取属性则是需要使用@,并且确保xpath路径正确
例如
<ListView ItemsSource="{Binding Source={StaticResource xmlData},XPath=/StringList/*}">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" Width="60" DisplayMemberBinding="{Binding XPath=@Id}" />
<GridViewColumn Header="Id" Width="60" DisplayMemberBinding="{Binding XPath=Age}" />
<GridViewColumn Header="Id" Width="60" DisplayMemberBinding="{Binding XPath=Nub}" />
</GridView>
</ListView.View>
</ListView>
截图

WPF 使用XML作为绑定源时Xaml注意事项的更多相关文章
- WPF中,如何将绑定源设置到单件实例
原文:WPF中,如何将绑定源设置到单件实例 WPF中,如何将绑定源设置到单件实例 周银辉 大概两个月前,曾有位朋友问我:如 ...
- Spinner 通过XML形式绑定数据时 无法从String.xml中读取数组
在android应用程序中,通过XML形式给Spinner绑定数据,如果把数组放在系统的string.xml文件里,那么就有可能在运行时无法找到,导致程序异常结束,解决方法是自建一个XML文件来存放数 ...
- vuejs中v-bind绑定class时的注意事项
关于v-bind绑定class的实例 作用:可用于不同样式之间的切换 <!DOCTYPE html> <html lang="en"> <head&g ...
- Service官方教程(9)绑定服务时的注意事项
Binding to a Service Application components (clients) can bind to a service by calling bindService() ...
- WPF绑定文本时使用指定格式文本
原文:WPF绑定文本时使用指定格式文本 Text="{Binding PlayletModel.characters,StringFormat=Cast : {0}}" Strin ...
- WPF窗体视图中绑定Resources文件中字符串时,抛出:System.Windows.Markup.StaticExtension
问题描述: 在Resources.resx定义了一个静态字符串字段Title,并在WPF窗体视图中绑定为窗体的标题: Title="{x:Static local:Resources.Tit ...
- WPF Binding学习(四) 绑定各种数据源
转自:http://blog.csdn.net/lisenyang/article/details/18312199 1.集合作为数据源 首先我们先创建一个模型类 public class Stude ...
- WPF 在事件中绑定命令(不可以在模版中绑定命令)
其实这也不属于MVVMLight系列中的东东了,没兴趣的朋友可以跳过这篇文章,本文主要介绍如何在WPF中实现将命令绑定到事件中. 上一篇中我们介绍了MVVMLight中的命令的用法,那么仅仅知道命令是 ...
- [WPF 基础知识系列] —— 绑定中的数据校验Vaildation
前言: 只要是有表单存在,那么就有可能有对数据的校验需求.如:判断是否为整数.判断电子邮件格式等等. WPF采用一种全新的方式 - Binding,来实现前台显示与后台数据进行交互,当然数据校验方式也 ...
随机推荐
- JavaScript-----7.循环
1.循环 在JS中主要有以下三种类型的循环 for循环 while循环 do...while循环 2. for循环 2.1 语法结构如下: for (初始化变量: 条件表达式: 操作表达式) { // ...
- css流星 效果
style: .loding { width: 100%; height: 100%; } .bg{ width: 100%; height: 100%; ...
- fjnu2019第二次友谊赛 F题
### 题目链接 ### 题目大意: 一开始手上有 z 个钱币,有 n 天抉择,m 种投资方案,在每天中可以选择任意种投资方案.任意次地花费 x 个钱币(手上的钱币数不能为负),使得在 n 天结束后, ...
- router-view 与 动态组件 区别
提问:router-view 可以页面跳转,使用 is特性 也可以进行页面跳转,有什么区别? 参考链接 https://segmentfault.com/q/1010000010750059
- Git - Git版本库相关操作
创建Git版本库 如下命令实现在“E:\GitCode\01_TestGit”路径下,01_TestGit项目的Git版本库. $ cd E: #将当前目录转到E盘下 $ cd GitCode ...
- ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)
在上一章中主要和大家分享在MVC当中如何使用ASP.NET Core内置的DI进行批量依赖注入,本章将继续和大家分享在ASP.NET Core中如何使用Autofac替换自带DI进行批量依赖注入. P ...
- flex常见布局
一,常见圣杯布局 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- CSS样式继承性
CSS样式继承介绍 外层元素身上的样式会被内层元素所继承. 当内层元素身上的样式与外层的元素身上的样式相同时内层元素样式会覆盖外层元素样式. 并不是所有的样式都能够继承,只有文本与字体样式属性才能够被 ...
- 漏洞扫描与分析-Nessus-8.7.2最新版-安装-部署-使用
漏洞扫描与分析-Nessus 2019/10/10 Chenxin 简介 官网 https://zh-cn.tenable.com/ 产品 https://zh-cn.tenable.com/prod ...
- linux 命令之touch
转自:http://www.maomao365.com/?p=2037 一.touch命令简介touch的命令功能说明: 1 可以通过touch新建一个文件; 2 可以修改文件的时间戳; 3 可以批量 ...