Trier un wpf grille de données par programmation
Est-il un moyen de trier un WPF DataGrid programmaticaly ( par exemple, comme si j'avais cliqué sur ma première colonne).
Est-il un moyen de simuate ce déclic ? Ou une meilleure façon ?
Voici mon code :
Collection_Evenements = new ObservableCollection<Evenement>();
Collection_Evenements = myEvenement.GetEvenementsForCliCode(App.obj_myClient.m_strCode);
Collection_Evenements.CollectionChanged += Collection_Evenements_CollectionChanged;
myDataGridEvenements.ItemsSource = Collection_Evenements;
System.Data.DataView dv = (System.Data.DataView)myDataGridEvenements.ItemsSource;
dv.Sort = "strEvtType";
myDataGridEvenements.Focus();
myDataGridEvenements.SelectedIndex = 0;
myDataGridEvenements.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
Je ne sais pas pourquoi, mais la ligne "dv.Tri = "strEvtType";" cause une chose étrange, ma Fenêtre se Montrer et le programme de ne pas continuer à exécuter les lignes suivantes, néanmoins je ne vois pas le tri !
Merci beaucoup,
Cordialement,
Nixeus
- Ne pouvez pas vous triez vos DataGrid view? Et d'actualisation de la mise en page?
- avez-vous un exemple s'il vous plaît ? comment fait-il cela ? Merci
Vous devez vous connecter pour publier un commentaire.
voo la solution ne fonctionne pas pour moi,
ItemsSource
était nulle, probablement parce qu'elle n'était pas directement, mais liés.Toutes les autres solutions que j'ai trouvées ici à StackOverflow étaient aux prises avec des tri le Modèle, mais le
DataGrid
en-tête n'était pas en réfléchissant de la sorte.Voici une bonne solution basée sur le incomplète script ici: http://dotnetgui.blogspot.co.uk/2011/02/how-to-properly-sort-on-wpf-datagrid.html
Dans le cas de votre code, il peut être utilisé comme ceci:
Ou en utilisant les valeurs de paramètre par défaut, il suffit de:
Obtenir votre ItemsSource de DataView et l'utilisation de sa propriété de Tri pour spécifier la colonne à trier par:
Ma méthode est de travailler pour moi.
Juste essayer ce code. Désolé pour le russe
PerformSort méthode de la grille de données est exécutée sur un en-tête de colonne cliquez sur. Toutefois, cette méthode est interne. Donc, si vous voulez vraiment simuler le clic vous devez utiliser la réflexion:
vous pouvez utiliser ICollectionView de filtrer, trier et regrouper vos achats en une grille de données.
EDIT: ajout de Tri, de ne pas lire attentivement la question 🙂