We can create Dynamic DataGrid and add this DataGrid in Grid control which is on MainPage.xaml.

Step 1 : Create Dynamic DataGrid as bleow and add DataGrid in Grid control.

Define variables on page.

Grid
panelGrid;
DataGrid dataGridFirst;
DataPager pager;

public void getPendingClientGrid()
{
panelGrid = new Grid();

panelGrid.Name = "PendingClientGrid";
RowDefinition rowDef1 = new RowDefinition();
RowDefinition rowDef2 = new RowDefinition();
panelGrid.RowDefinitions.Add(rowDef1);
panelGrid.RowDefinitions.Add(rowDef2);
panelGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
panelGrid.VerticalAlignment = VerticalAlignment.Top;
dataGridFirst = new DataGrid();
dataGridFirst.Name = "PendingClientDataGrid";
dataGridFirst.AutoGenerateColumns = true;
dataGridFirst.HeadersVisibility = DataGridHeadersVisibility.Column;
dataGridFirst.HorizontalAlignment = HorizontalAlignment.Stretch;
dataGridFirst.VerticalAlignment = VerticalAlignment.Center;
dataGridFirst.IsReadOnly = true;

dataGridFirst.AutoGeneratingColumn += new EventHandler<DataGridAutoGeneratingColumnEventArgs>(dataGridFirst_AutoGeneratingColumn);
dataGridFirst.LayoutUpdated += new EventHandler(dataGridFirst_LayoutUpdated);
dataGridFirst.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGridFirst_LoadingRow);
dataGridFirst.PreparingCellForEdit += new EventHandler<DataGridPreparingCellForEditEventArgs>(dataGridFirst_PreparingCellForEdit);
dataGridFirst.HeadersVisibility = DataGridHeadersVisibility.All;
Grid.SetRow(dataGridFirst, 0);

pager = new DataPager();
Grid.SetRow(pager, 1);

panelGrid.Children.Add(dataGridFirst);
panelGrid.Children.Add(pager);

this.PendingClientsGrid.Children.Add(panelGrid);
dataGridFirst.Style = (Style)Application.Current.Resources["newDataGridStyle"];
dataGridFirst.ColumnHeaderStyle = (Style)Application.Current.Resources["DataGridHeaderGlassEffect"];
}

Step 2 : We can also define the datagrid styles in code behind as below.

dataGridFirst.Style = (Style)Application.Current.Resources["newDataGridStyle"];
dataGridFirst.ColumnHeaderStyle = (Style)Application.Current.Resources["DataGridHeaderGlassEffect"];

Step 3 : Add created datagrid in PendingClientsGrid as below.

<Grid x:Name="PendingClientsGrid" Grid.Row="2" Margin="0,5,0,0" HorizontalAlignment="Left" />
panelGrid.Children.Add(dataGridFirst);
panelGrid.Children.Add(pager);
this.PendingClientsGrid.Children.Add(panelGrid);

Step 4 : Call getPendingClientGrid() in page as below.Make 1 method named getPendingClientdata() in this method we binding data for datagrid.

public void getPendingClientdata()
{
dataGridFirst.ItemsSource = e.result;
}
public
PendingClientWindow()
{
InitializeComponent();
getPendingClientGrid();
getPendingClientdata();
}


Step 5 : OutPut look like as below.

dynamic datagrid in silverlight

Summary : We can create dynamic datagrid and also applying style for datagrid dynamically.