Bind a given DataGrid data source to a given XML fileDataGrid 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 applicationFigure 1First, 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 addedFigure 2In 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 resultFigure 3
You need to be a premium member to use this feature. To access it, you'll have to upgrade your membership.
Become a sharper developer and jumpstart your career.
$0
$
. 00
monthly
For Basic members:
$20
For Premium members:
$45
For Elite members: