Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Data
- {
- private CollectionViewSource viewSource = new CollectionViewSource();
- public Data()
- {
- var items = new List<Item>();
- // Create 1000 items
- viewSource.Source = items;
- }
- public ICollectionView View => viewSource.View;
- }
- public class Item
- {
- public string Description { get; set; } = "Text here";
- public bool Bool { get; set; }
- public int Value { get; set; }
- public DateTime TimeStamp { get; set; }
- public Test EnumValue { get; set; }
- public static IEnumerable AvailableEnumValues =>
- Enum.GetValues(typeof(Test));
- }
- <DataGrid ItemsSource="{Binding View}"
- EnableColumnVirtualization="True" EnableRowVirtualization="True"
- VirtualizingPanel.IsContainerVirtualizable="False"
- VirtualizingPanel.IsVirtualizing="True"
- VirtualizingPanel.VirtualizationMode="Recycling"
- VirtualizingPanel.IsVirtualizingWhenGrouping="True"
- VirtualizingStackPanel.CacheLength="2,3"
- VirtualizingStackPanel.CacheLengthUnit="Page"
- VirtualizingStackPanel.ScrollUnit="Item">
- <DataGrid.Columns>
- <DataGridTextColumn Binding="{Binding Description}" Width="100"/>
- <DataGridTextColumn Binding="{Binding Value}" Width="100"/>
- <DataGridCheckBoxColumn Binding="{Binding Bool}" Width="100"/>
- <DataGridComboBoxColumn SelectedItemBinding="{Binding EnumValue}"
- ItemsSource="{x:Static local:Item.AvailableEnumValues}"
- Width="100"/>
- <DataGridTextColumn Binding="{Binding TimeStamp}" Width="100"/>
- <!-- Repeat 5 columns above 5 times -->
- </DataGrid.Columns>
- </DataGrid>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement