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
![datagrid1.gif]()
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
![datagrid2.gif]()
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
![datagrid3.gif]()
Figure 3