Silverlight DataGrid does not have the built-in paging facility. So here 
is a small piece of code to implement paging in Silverlight DataGrid. For this 
custom paging 
- Calculate the number of pages based on total number of 
records and page size 
 - Add those many buttons to a container like StackPanel and 
 - On those buttons click events bind the DataGrid to desired 
range of records.
 
Demo
1. Define the following Properties and Variables
                
public partial class Page : UserControl
    {
        
//Property to hold the value of total records 
        
public int TotalRow { get; 
set; }
        
//Property to hold the value of page 
size
        
public int PageSize { get; 
set; }
        
//Number of rows that the 
DataGrid
        
int totalRowsInGrid = 0;
2. Initialize the values 
                
public 
Page()
        
{
            
InitializeComponent();
            
//Initialize the page 
size
            
PageSize = 10;
            
//Get the desired 
data
            user = User.Get();
            
//Set the TotalRow cout to the number of rows 
returned for data
            
TotalRow = user.Count;
 
            
BindGrid(1);
            
DoPaging(this.PageSize, 
TotalRow);
        
}
3. Create a method to get the desired range of data based on 
page number
/// 
<summary>
        
/// Returns 
paged data based on page number
        
/// 
</summary>
        
/// 
<param 
name="pageNumber"></param>
        
/// 
<returns></returns>
        
private List<User> GetData(int pageNumber)
        
{
            
int Pagestart = (pageNumber - 1) * this.PageSize;
            
TextBlockStartPageNumber.Text = 
(Pagestart+1).ToString();
            
TextBlockEndPageNumber.Text = (Pagestart + 
totalRowsInGrid).ToString();
            
TextBlockTotalRecords.Text = TotalRow.ToString();
            
int i = TotalRow;
            
List<User> PagedData;
            
//List<User> PagedData = 
user.Skip((pageNumber - 1) * PageSize).Take(PageSize) as 
List<User>;
            
//List<YourObject> PageedData = 
FullList.Skip((PageNumber - 1) * 
PageSize).Take(PageSize).ToList();
            if ((i - ((pageNumber - 1) * this.PageSize)) >= this.PageSize)
                
PagedData = user.GetRange(Pagestart, this.PageSize);
            
else
                
PagedData = user.GetRange(Pagestart, (i % this.PageSize));
            
return PagedData;
        
}
4. Bind the DataGrid
/// 
<summary>
        
/// Bind grid 
to the desired range of records
        
/// 
</summary>
        
/// 
<param 
name="PageNumber"></param>
        
private void BindGrid(int 
PageNumber)
        
{
            
if (this.PageSize * PageNumber > this.TotalRow)
            
{
                
totalRowsInGrid = this.TotalRow % this.PageSize;
            
}
            
else
            
{
                
totalRowsInGrid = this.PageSize;
            
}
            
dataGridPaging.ItemsSource = GetData(PageNumber);
        
}
5. Write the click event for the paging 
buttons
/// 
<summary>
        
/// Handles 
the click event of buttons having page numbers
        
/// 
</summary>
        
/// 
<param 
name="sender"></param>
        
/// 
<param 
name="e"></param>
        
void btn_Click(object sender, RoutedEventArgs e)
        
{
            
Button btn = sender as Button;
            
int iPageNumber = Convert.ToInt32(btn.Content.ToString());
            
BindGrid(iPageNumber);
        
}
That’s 
all you are done with the custom paging in Silverlight DataGrid.