Vorrei sapere se sarebbe possibile aggiungere funzionalità al pulsante "Seleziona tutto" nell'angolo in alto a sinistra di un datagrid in modo che deselezioni anche tutte le righe? Ho un metodo collegato a un pulsante che esegue questa operazione, ma sarebbe bello se potessi attivare questo metodo dal pulsante Seleziona tutto, per mantenere la funzionalità nella stessa parte della vista. Questo pulsante 'Seleziona tutto' può essere aggiunto al codice e, in tal caso, come si arriva al pulsante? Non sono stato in grado di trovare esempi o suggerimenti.Wagr Datagrid "Seleziona tutto" - "Deseleziona tutto" anche?
risposta
OK dopo un sacco di ricerche ho trovato il modo di farlo arrivare al pulsante da Colin Eberhardt, qui:
Styling hard-to-reach elements in control templates with attached behaviours
Poi ho esteso il metodo "Grid_Loaded" nella sua classe per aggiungere un evento gestore del pulsante, ma ricorda di rimuovere prima il comando "Seleziona tutto" predefinito (altrimenti, dopo aver eseguito il gestore di eventi che abbiamo aggiunto, il comando viene eseguito).
/// <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;
}
In sostanza, se tutte le righe non selezionate è 'seleziona tutto', se non è 'deseleziona tutto'. Funziona praticamente come se dovessi aspettarti una selezione/deseleziona tutto per funzionare, non posso credere che non abbiano fatto il comando di farlo in modo predefinito per essere onesti, forse nella prossima versione.
Spero che questo aiuti qualcuno in ogni caso, Cheers, Will
si può aggiungere un CommandBinding per gestire l'evento selectAll.
- 1. Seleziona tutto WPF DataGrid
- 2. Evento per Seleziona tutto: WPF Datagrid
- 3. Deseleziona tutto RadioButton in un RadioButtonGroup
- 4. Funzione "seleziona tutto" e iCheck
- 5. UISearchBar seleziona tutto il testo
- 6. Colonna casella di controllo DataGridView "seleziona tutto" prestazioni
- 7. selectall uitextfield non sempre seleziona tutto
- 8. jquery seleziona tutto con display: nessuno;
- 9. Seleziona tutto da una tabella ibernazione
- 10. SQL SELEZIONA tutto dopo un determinato carattere
- 11. Jquery seleziona tutto se non disabilitato
- 12. jQuery isotopo checkbox filter, se tutto deseleziona show no item
- 13. SQLite Connessione trapelata anche se tutto chiuso
- 14. Jquery Accordion Espandi tutto Comprimi tutto
- 15. Tutto Finale
- 16. CEdit seleziona tutto quando ottiene lo stato attivo
- 17. Seleziona tutto il testo tra virgolette, parentesi ecc in Atom.io
- 18. Seleziona tutto il livello di gerarchia e sotto SQL Server
- 19. Seleziona tutto come valore predefinito per il parametro Multivalore
- 20. Come fare Seleziona tutto (*) in linq su sql
- 21. Javascript: seleziona tutto tranne un elemento dalla matrice con slice()?
- 22. LINQ: Seleziona tutto da ogni gruppo, tranne il primo elemento
- 23. MySQL SELEZIONA tutto in un'unica grande stringa (colonne e righe)
- 24. Seleziona tutto dopo una determinata riga nella tabella SQL ordinata
- 25. Seleziona tutto dove [prima lettera inizia con B]
- 26. Come selezionare tutto CheckBox di una colonna da DataGrid HeadBox CheckBox in WPF DataGrid
- 27. Rimozione tutto dopo il carattere (e anche carattere)
- 28. Come posso risolvere xcode compilando tutto tutto il tempo?
- 29. HorizontalListview con immagine seleziona e deseleziona
- 30. Seleziona/deseleziona tutte le caselle di controllo
Molto utile grazie! – Sharun
Grazie - L'esempio di codice sarebbe completo se la definizione di "GetSelectAllButtonTemplate()" fosse inclusa. – PandaWood