A custom DataGrid control that inherits from the base DataGrid control class and override some methods to implement filters for each column, like Excel.
Translation of information displayed and formatting of dates in the chosen language.
Languages available: English, French, Russian, German, Italian, Chinese.
The translations are from google translate, if you find any errors or want to add other languages, please let me know.
Add FilterDataGrid.dll as reference in your project
Add FilterDatagrid into your xaml :
Namespace
<Windowxmlns:control="http://filterdatagrid.control.com/2021" ...
Control
<control:FilterDataGridFilterLanguage="English"DateFormatString="d"ShowStatusBar="True"ShowElapsedTime="False" ...
- Properties
- ShowStatusBar : displays the status bar, default : false
- ShowElapsedTime : displays the elapsed time of filtering in status bar, default : false
- DateFormatString : date display format, default : "d"
- FilterLanguage : translation into available language, default : English
- Properties
If you add custom columns, you must set AutoGenerateColumns="False"
Custom TextColumn
<control:FilterDataGrid.Columns> <control:DataGridTextColumnIsColumnFiltered="True" ...
Custom TemplateColumn
FieldName property of DataGridTemplateColumn is required
<control:FilterDataGrid.Columns> <control:DataGridTemplateColumnIsColumnFiltered="True"FieldName="LastName" ...
Intel Core i7, 2.93 GHz, 16 GB, Windows 10, 64 bits.
Tested on the "Last name" column of the demo application using a random distinct name generator, between 5 and 8 letters in length.
The elapsed time decreases based on the number of columns and filtered items.
| Number of rows | Opening of the PopUp | Applying the filter | Total (PopUp + Filter) |
|---|---|---|---|
| 10 000 | < 1 second | < 1 second | < 1 second |
| 100 000 | < 1 second | < 1 second | < 1 second |
| 500 000 | ± 1.5 second | ± 1 second | ± 2.5 seconds |
| 1 000 000 | ± 3 seconds | ± 1.5 seconds | ± 4.5 seconds |
