zoukankan      html  css  js  c++  java
  • Silverlight中DataDrid绑定XML数据

    Silverlight中DataDrid绑定XML数据,从老外的网站上转过来的,参考一下

    Bind a given DataGrid data source to a given XML file

    DataGrid could also be bound to a another persisted kind of datasoures, such as XML ressources or something spectial such as RSS feeds. To bind a given DataGrid to a given xml file data source, the following example is provided to illustrate that.

    Create a new Silverlight application



    Figure 1

    First, In the XAML code editor add the following code

           <Grid x:Name="LayoutRoot" Background="White">
                <data:DataGrid x:Name="myDataGrid"
                        AutoGenerateColumns="True"
                        >
                </data:DataGrid>
            </Grid>

    As you can remark, the DataGrid should be named so that it could be refered later in the C# code behind. Now, let consider this xml file as a main data source for our DataGrid.

    <?xml version="1.0" encoding="utf-8" ?>
    <myFamily>
    <
    item>
        <
    FirstName>Bejaoui</FirstName>
        <LastName>Habib</LastName>
        <Age>66</Age>
        <IsMale>true</IsMale>
    </item>
    <
    item>
        <
    FirstName>Ben Garga</FirstName>
        <LastName>Kadija</LastName>
        <Age>63</Age>
        <IsMale>false</IsMale>
    </item>

    <item>
        <
    FirstName>Bejaoui</FirstName>
        <LastName>Bechir</LastName>
        <Age>30</Age>
        <IsMale>true</IsMale>
    </item>
    <
    item>
        <
    FirstName>Bejaoui</FirstName>
        <LastName>Arbia</LastName>
        <Age>25</Age>
        <IsMale>false</IsMale>
    </item>
    <
    item>
        <
    FirstName>Bejaoui</FirstName>
        <LastName>Rim</LastName>
        <Age>20</Age>
        <IsMale>false</IsMale>
    </item>
    </
    myFamily>

    Second, a class that fits the xml structure should be developed. It could be represented as under

    public class Person
            {
                public string FirstName { get; set; }
                public string LastName { get; set; }
                public string Age { get; set; }
                public string IsMale { get; set; }
            }

    Third, a reference to the System.Xml.Linq namespace should be added



    Figure 2

    In the code behind, a DataGrid object should be declared and the under code should be implemented

         public partial class Page : UserControl
            {
                DataGrid oGrid;
                public Page()
                {
                    InitializeComponent();
                    InitializeGrid();
                }
                public void InitializeGrid()
                {
                    XDocument oDoc = XDocument.Load("File.xml");
                    var myData = from info in oDoc.Descendants("item")
                                 select new Person
                                 {
                                     FirstName = Convert.ToString(info.Element("FirstName").Value),
                                     LastName = Convert.ToString(info.Element("LastName").Value),
                                     Age = Convert.ToString(info.Element("Age").Value),
                                     IsMale = Convert.ToString(info.Element("IsMale").Value)
                                 };
                    oGrid = this.FindName("myDataGrid") as DataGrid;
                    oGrid.ItemsSource = myData;

                 }
            }

    This leads to the following result


  • 相关阅读:
    第二次会议记录(2021.7.19)
    第一次会议记录(2021.7.8)
    软件工程助教工作总结
    Linux下的常用命令
    GPIO输出——使用固件库点亮LED 宏定义遇到的问题
    STM32 GPIO BRR和BSRR寄存器
    snprintf()函数使用方法
    结构体元素偏移量宏的定义及解析
    函数指针&回调函数Callback
    解析#define NULL ((void *)0)——野指针,空指针和 void*
  • 原文地址:https://www.cnblogs.com/zhangq723/p/1707234.html
Copyright © 2011-2022 走看看