GridControl
Apparence
Liens
Server Mode vs Instant Feedback Mode
- Server Mode permet de récupérer les données à afficher par blocks, et non l'ensemble de données de la source. Ce qui réduit le temps de chargement.
- Instant Feedback Mode est équivalent au Server Mode mais en asynchrone. Ainsi même durant le temps de chargement des données, l'utilisateur garde la main.
Avec Entity Framework
using System.Data.Entity; // nécessaire pour l'appel de Load()
entities.FI.Load();
MyGrid.ItemsSource = entities.FI.Local;
|
Server Mode
Chargement uniquement des données à afficher.
MyGrid.ItemsSource = new LinqServerModeSource()
{
ElementType = typeof(MaTable),
KeyExpression = "Id",
QueryableSource = entities.MaTable
};
|
![]() |
La source en lecture seule |
Instant Feedback (asynchronous) Mode
<dx:EntityInstantFeedbackDataSource Name="entitySource" KeyExpression="Id" />
<dxg:GridControl ItemsSource="{Binding ElementName=entitySource, Path=Data}"
AutoGenerateColumns="AddNew"
EnableSmartColumnsGeneration="True">
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="True"/>
</dxg:GridControl.View>
</dxg:GridControl>
|
entitySource.QueryableSource = _entities.MaTable;
|
Customize Automatically Generated Columns
<dxg:GridControl x:Name="MyGrid"
AutoGeneratedColumns="MyGrid_AutoGeneratedColumns">
|
private void MyGrid_AutoGeneratedColumns(object sender, RoutedEventArgs e)
{
foreach (GridColumn column in MyGrid.Columns)
{
if (column.FieldName == "Id")
{
// cacher la colonne
column.Visible = false;
// appliquer un datatemplate: Foreground → Blue
string cellTemplate = @"
<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""
xmlns:dxe=""http://schemas.devexpress.com/winfx/2008/xaml/editors"">
<dxe:TextEdit x:Name=""PART_Editor"" Foreground=""Blue""/>
</DataTemplate>";
column.CellTemplate = XamlReader.Parse(cellTemplate) as DataTemplate;
// si le datatemplate est dans les ressources
column.CellTemplate = Application.Current.MainWindow.Resources["MyTemplate"] as DataTemplate;
// trier la colonne
column.SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
}
}
}
|