• 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


  • 相关阅读:
    javascript字符串加密解密函数
    javascript实现blob加密视频源地址
    HTML网页实现flv视频播放
    DELL r720远控装系统
    nginx笔记
    Centos7防火墙配置
    CentOS7.x搭建LNMP
    搭建可道云私人云盘系统
    网络设备巡检常用命令-摘自星球成员马磊分享
    部署Windows Server 2012的WSUS补丁服务器
  • 原文地址:https://www.cnblogs.com/zhangq723/p/1707234.html
Copyright © 2020-2023  润新知