I am using the DataGrid control and having a slowdowns when setting the ItemSource with many records.
Please see my sample code below.
Code: Select all
<DataGrid x:Name="DataGrid1" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding PersonName}"/>
<DataGridTextColumn Header="Age" Binding="{Binding PersonAge}"/>
<DataGridTextColumn Header="Address" Binding="{Binding PersonAddress}"/>
<DataGridTextColumn Header="Contact Number" Binding="{Binding PersonContactNumber}"/>
</DataGrid.Columns>
</DataGrid>
Then my C# code.
Code: Select all
public class Person
{
public string PersonName { get; set; }
public int PersonAge{ get; set; }
public string PersonAddress{ get; set; }
public string PersonContactNumber{ get; set; }
}
private void FillDataGrid()
{
List<Person> Listing = new List<Person>();
//This loop adds let say 1000 items to the list
for(int index = 0; index < 1000; index++)
{
Person current = new Person();
current = GenerateDummyRecord();
Listing.Items.Add(current);
}
//Sets the Listing as the item source of DataGrid
DataGrid1.ItemsSource = Listing;
}
But as what I observed, the rendering of the DataGrid (loading, going to previous or next page of the DataGrid) is slow and will hang the UI.
Am I using the correct method?
Will wait for your feedback.
Thanks.
Fernan