GridControl
De Banane Atomic
Aller à la navigationAller à la recherche
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; } } } |