1. 程式人生 > >WPF中的binding(六)- 使用XML資料作為Binding的源

WPF中的binding(六)- 使用XML資料作為Binding的源

首先,定義一個XML檔案,存放一組學生的資訊,將其存放在D:\Test.XML中,我們把它顯示在一個ListView樣式中。

<?xml version="1.0" encoding="utf-8"?>
<StudentList>
  <Student Id="1">
    <Name="張?三¨y"/>
  </Student>
  <Student Id="2">
    <Name="李¤?四?"/>
  </Student>
  <Student Id="3">
    <Name="王ª?五?"/>
  </Student>
</StudentList>

XMAL檔案如下:
<Window x:Class="_6_20.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ListView ItemsSource="{Binding}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="ID" Width="80"  DisplayMemberBinding="{Binding 
[email protected]
}"/> <GridViewColumn Header="Name" Width="100" DisplayMemberBinding="{Binding XPath=Name}"/> </GridView> </ListView.View> </ListView> </Grid> </Window>
後臺程式碼如下:
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            XmlDocument doc = new XmlDocument();
            doc.Load(@"D:\Test.xml");

            XmlDataProvider xdp = new XmlDataProvider();
            xdp.Document = doc;
            xdp.XPath = @"StudentList/Student";

            this.listview.DataContext = xdp;
        }
    }

這裡最主要的幾點如下:
1、ListView的ItemsSource必須要設定空的Binding,這樣設定之後,Binding會自動在listview物件的DataContext中查詢預設的集合類物件,並賦值給ItemsSource。
2、DisplayMemberBinding="{Binding [email protected]}",使用@符號表示XML元素的Attribute
3、DisplayMemberBinding="{Binding XPath=Name}",沒有使用@符號表示XML元素的子元素。
4、特別XmlDataProvider還有一個 Source屬性,可以不使用XmlDocument而直接載入XML檔案:
以上程式碼還可寫成:
public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            XmlDataProvider xdp = new XmlDataProvider();
            xdp.Source = new System.Uri(@"D:\Test.xml");
            xdp.XPath = @"StudentList/Student";

            this.listview.DataContext = xdp;
        }
    }

執行效果如下:



相關推薦

WPFbinding- 使用DataTable作為Binding

一、DataTable的DefaultView屬性賦值給ListBox等派生自ItemsControl類的物件。XAML檔案如下,我們設定ListBox的DisplayMemberPath為Name,這樣會在ListBox的列表中顯示DataTable對應的Name列:

Binding——使用DataContext作為Binding

前面的例子都是將CLR型別的物件指定為Binding的Source,使用了兩種方法——把物件賦值個Binding.Source或把物件的Name賦值給Binding.ElementName。 DataContext屬性被定義在FrameworkElement類中,這個類是WPF控制元件的基類,意味著所有WP

WPFbinding- 使用XML資料作為Binding

首先,定義一個XML檔案,存放一組學生的資訊,將其存放在D:\Test.XML中,我們把它顯示在一個ListView樣式中。 <?xml version="1.0" encoding="utf-8"?> <StudentList> <Stu

WPF 學習筆記

nfx text 學習筆記 idt 布局 com 學習 pre eight 一、常用布局 啰嗦一下,一些音頻,圖片可以用拖入的方式加入某個項目中 <Grid> <StackPanel Orientation="Vert

吳恩達機器學習訓練祕籍整理三十到四十三章訓練資料

第三十六章: 何時在不同的分佈上訓練與測試。 使用者上傳的10000張圖片。網上收集的200000張圖片。使用者上傳的5000張用來做開發集和測試集。205000用來做訓練集。這樣可以讓他們的資料集的分佈儘可能的相同。 第三十七章: 現有100000張使用者上傳的圖片和200000張

pandas系列學習資料聚合

作者:chen_h 微訊號 & QQ:862251340 微信公眾號:coderpai 我最近一直在探索的一個方面是通過不同變數對大型資料幀進行分組,以及對每個組應用匯總函式的任務。這是在 pandas 中使用 DataFrame 物件的

Java網路爬蟲--JSON資料的解析

有時候,我們抓取下來一個html頁面,發現瀏覽器頁面可以顯示的東西在html原始碼中卻沒有,這時候我們就要考慮伺服器是以JSON格式將這部分資料傳送到客戶端的,對於這種情況的處理方式我們一般是在chrome的開發者工具中找到對應的JSON包,然後構建其URL,對

資料探勘入門系列教程資料集特徵選擇

目錄 資料探勘入門系列教程(六)之資料集特徵選擇 簡介 載入資料集Adult 特徵選擇 選擇最佳特徵 總結 資料探勘入門系列教程

Docker容器資料

## 容器資料卷 ### docker的理念回顧 將應用和環境打包成一個映象 **需求:資料可以持久化和同步** ### 使用資料卷 #### 指定路徑掛載 ``` docker run -it -v 主機目錄:容器內目錄 # 測試 [root@hwh1 ~]# docker run -it -v /ho

數據綁定使用DataContext作為Binding的Source

set ane context int 技術 blog ont href attach 原文:數據綁定(四)使用DataContext作為Binding的Source

WPF的動畫——演示圖板

lean leave () 不透明度 資料 har 恢復 triggers 通知 原文:WPF中的動畫——(六)演示圖板前面所介紹的都是單一的動畫,它只能修改單一屬性。有的時候,我們需要將一組動畫一起進行,對於一個按鈕,我們可能有如下需求: 選擇該按鈕時,該按鈕增

數據綁定使用XML數據作為Binding的Source

encoding 分享 article emp spa element HA isp class 原文:數據綁定(六)使用XML數據作為Binding的Source

WPF Binding例項——LINQ查詢結果

自定義Person類 public class Person { private string m_Name; private int m_Age; private char m_Gender;

資料探勘的模式發現挖掘序列模式

序列模式挖掘 序列模式挖掘(sequence pattern mining)是資料探勘的內容之一,指挖掘相對時間或其他模式出現頻率高的模式,典型的應用還是限於離散型的序列。。 其涉及在資料示例之間找到統計上相關的模式,其中資料值以序列被遞送。通常假設這些值是

JS資料型別——Object

ECMAScript中的物件是可變的鍵控集合(即一組資料和功能的集合)。它將很多值聚合在一起,可通過名字訪問這些值。物件也可看做屬性的容器,每個屬性都是一個名/值對。屬性的名字可以是包括空字串在內的任

資料結構——二叉樹 前序、序、後序、層次遍歷及非遞迴實現 查詢、統計個數、比較、求深度的遞迴實現

一、基本概念每個結點最多有兩棵子樹,左子樹和右子樹,次序不可以顛倒。性質:1、非空二叉樹的第n層上至多有2^(n-1)個元素。2、深度為h的二叉樹至多有2^h-1個結點。滿二叉樹:所有終端都在同一層次,

WPFbinding- 使用集合物件作為列表控制元件的ItemsSource

WPF中列表式控制元件派生自ItemsControl類,繼承了ItemsSource屬性。ItemsSource屬性可以接收一個IEnumerable介面派生類的例項作為自己的值(所有可被迭代遍歷的集

Mybaits 原始碼解析 ----- 全網最詳細:Select 語句的執行過程分析上篇Mapper方法是如何呼叫到XML的SQL的?

上一篇我們分析了Mapper介面代理類的生成,本篇接著分析是如何呼叫到XML中的SQL 我們回顧一下MapperMethod 的execute方法 public Object execute(SqlSession sqlSession, Object[] args) { Object res

設計模式在遊戲的應用--原型模式

markdown 什麽 java 原型模型 char mod 結構圖 void -s Prototype原型模式是一種創建型設計模式,Prototype模式同意一個對象再創建另外一個可定制的對象,根本無需知道不論什麽怎樣創建的細節,工作原理是:通過將一個

[轉]spring入門【springMVC各數據配置】

數據源 開源 文件 mysql 簡單 oot img log 自帶 在使用spring進行javaWeb開發的過程中,需要和數據庫進行數據交換,為此要經常獲取數據庫連接,使用JDBC的方式獲取數據庫連接,使用完畢之後再釋放連接,這種過程對系統資源的消耗無疑是很大的,這裏簡單