Je voudrais savoir s'il serait possible d'ajouter des fonctionnalités au bouton 'Sélectionner tout' en haut à gauche d'une grille de données afin de désélectionner toutes les lignes? J'ai une méthode attachée à un bouton qui fait cela, mais ce serait génial si je pouvais déclencher cette méthode à partir du bouton Sélectionner tout, pour garder la fonctionnalité dans la même partie de la vue. Est-ce que ce bouton "Sélectionner tout" peut contenir du code, et si oui, comment accéder au bouton? Je n'ai pas été en mesure de trouver des exemples ou des suggestions.WPF Datagrid Bouton "Sélectionner tout" - "Désélectionner tout"?
Répondre
OK après beaucoup de recherches, je trouve comment faire accéder au bouton de Colin Eberhardt, ici:
Styling hard-to-reach elements in control templates with attached behaviours
Je prolonge la méthode « Grid_Loaded » dans sa classe pour ajouter un événement mais n'oubliez pas de supprimer la commande par défaut 'Select All' (sinon, après l'exécution du gestionnaire d'événements que nous avons ajouté, la commande est exécutée).
/// <summary>
/// Handles the DataGrid's Loaded event.
/// </summary>
/// <param name="sender">Sender object.</param>
/// <param name="e">Event args.</param>
private static void Grid_Loaded(object sender, RoutedEventArgs e)
{
DataGrid grid = sender as DataGrid;
DependencyObject dep = grid;
// Navigate down the visual tree to the button
while (!(dep is Button))
{
dep = VisualTreeHelper.GetChild(dep, 0);
}
Button button = dep as Button;
// apply our new template
ControlTemplate template = GetSelectAllButtonTemplate(grid);
button.Template = template;
button.Command = null;
button.Click += new RoutedEventHandler(SelectAllClicked);
}
/// <summary>
/// Handles the DataGrid's select all button's click event.
/// </summary>
/// <param name="sender">Sender object.</param>
/// <param name="e">Event args.</param>
private static void SelectAllClicked(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
DependencyObject dep = button;
// Navigate up the visual tree to the grid
while (!(dep is DataGrid))
{
dep = VisualTreeHelper.GetParent(dep);
}
DataGrid grid = dep as DataGrid;
if (grid.SelectedItems.Count < grid.Items.Count)
{
grid.SelectAll();
}
else
{
grid.UnselectAll();
}
e.Handled = true;
}
Essentiellement, si toutes les lignes ne sont pas sélectionnés il sélectionne tous ', sinon' désélectionne tout. Cela fonctionne à peu près comme si vous attendiez un select/unselect all à travailler, je ne peux pas croire qu'ils n'ont pas fait la commande par défaut pour être honnête, peut-être dans la prochaine version.
Hope this helps quelqu'un de toute façon, Cheers, Will
Nous pouvons ajouter un CommandBinding pour gérer l'événement selectAll.
- 1. TextField() Prévenir ctrl + a (tout sélectionner)
- 2. Flex: Tout contrôle pour sélectionner le mois?
- 3. WPF DataGrid Bouton Colonne Désactiver
- 4. Pourquoi tout dans WPF est flou?
- 5. Silverlight DataGrid - Masquer une ligne tout en affichant ses RowDetails
- 6. Sélectionner tout le texte dans un Winforms Infragistics ComboBox
- 7. Comment sélectionner le texte dans JTextField tout en tabulation
- 8. Tout sélectionner pas dans l'exigence, LINQ to SQL
- 9. Requête SQL pour sélectionner tout sauf la valeur maximale
- 10. DataGridView override haut, gauche entête cellule click (tout sélectionner)
- 11. Tout sélectionner sauf le premier caractère d'une chaîne
- 12. Comment sélectionner tout le texte dans un Windows Forms TextBox?
- 13. Git GUI .. tout stade
- 14. Implémentation Sélectionner et désélectionner (bascule) sur un SELECT TAG
- 15. WPF: Aidez-moi! Visual Brush étend tout le contenu
- 16. WPF Listbox défilement automatique tout en faisant glisser
- 17. PHP: Liste tout compris
- 18. sifr Problème - tout invisible
- 19. JCE Pro - Tout bon?
- 20. Drupal Ajaxifier tout
- 21. Tout Smalltalk sur .NET?
- 22. WPF DataGrid zoom question
- 23. Performance WPF ToolKit DataGrid
- 24. Comment désélectionner Cochez toutes les cases si l'une des cases n'est pas cochée dans WPF, C#?
- 25. WPF TextBox - sélectionne le texte par programmation tout en préservant la "direction de sélection"
- 26. Validation forcée; WPF, DataGrid, ObservableCollection
- 27. Toolchain pour tout processeur ARM
- 28. WeakValueDictionary pour contenir tout type
- 29. erreur #ZipLib tout extractibles gzip
- 30. Tout EventBroker/Aggregator pour WinForms
Très utile merci! – Sharun
Merci - L'exemple de code serait complet si la définition de 'GetSelectAllButtonTemplate()' était incluse. – PandaWood