Sto cercando un modo per selezionare più elementi nella visualizzazione elenco e cancellarli in una determinata azione. Quello che non riesco a capire è, come devo avere questi elementi multipli selezionati? Penserei che ci sia una lista in cui avrei bisogno di aggiungerli tutti, ma qual è il modo migliore per affrontare questa situazione, hai qualche idea? Grazie! -KevinWPF ListView Selezione di più oggetti Visualizza elenco
risposta
Set SelectionMode-Multiple
o Extended
e scorrere l'SelectedItems
nel vostro ListView
.
Si può fare in uno dei seguenti ...
ListView.SelectionMode = SelectionMode.Extended
nel code-behind o
<ListView SelectionMode="Extended"></ListView>
in XAML
hai anche SelectionMode 'multipla' ancora si potrebbe invece andare per ' esteso 'che consente all'utente di selezionare più oggetti usando solo il modificatore di turno.
Per cancellare gli elementi selezionati è possibile utilizzare il ListView.SelectedItems Propery come segue
while(myListView.SelectedItems.Count > 0)
{
myListView.Items.Remove(list.SelectedItems[0]);
}
[o si potrebbe utilizzare la proprietà selectedIndices]
Spero che questo eviterà il problema che hai incontrato :)
Cheers!
Vorrei suggerire di non utilizzare la proprietà SelectedItems
di ListView
, invece associare la proprietà Selected
del singolo ListViewItem
, ad un corrispondente ViewModel
di classe. Dopo questo, l'unica cosa che devi fare è trovare tutti gli oggetti ViewModel
che hanno associato la proprietà Selected
TRUE, rimuoverli dalla raccolta del modello (se rimuovi) e aggiornare l'interfaccia utente. Se la raccolta è ObservableCollection
, l'interfaccia utente verrà aggiornata automaticamente. Buona fortuna.
Potresti fornire qualche ragione per cui non dovresti usare la proprietà 'SelectedItems'? –
perché rende il design più complicato e può portare a bug. Se hai una Proprietà Selezionata su ogni oggetto che si trova in ItemsSource, puoi associare ogni elemento molto facilmente in questo modo:
@NomanKhan Dovrebbe essere ListViewItem non ListBoxItem; anche senza bisogno di BasedOn penso ... Ma buon commento, mi ha aiutato! –
ottenere il successo anche WPF ListView scrivendo
while (lvJournalDetails.SelectedItems.Count > 0)
{
lvJournalDetails.Items.Remove(lvJournalDetails.SelectedItem);
}
Arcturus risposta è buona, se non si sta usando MVVM. Ma se lo fai e il tuo ItemsSource è vincolato ad alcuni ObservableCollection di oggetti nel tuo ViewModel, vorrei raccomandare la risposta Tigran, con chiarimenti Noman Khan.
Ecco come sarebbe simile:
<ListView ItemsSource="{Binding SomeListViewList}">
<ListView.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding SomeItemSelected, Mode=TwoWay}" />
</Style>
</ListView.Resources>
...
</ListView>
In vista del modello si avrebbe oggetto: public ObservableCollection<SomeItem> SomeListViewList{ get; set; }
SomeItem classe dovrebbe includere una proprietà Selected:
public class SomeItem
{
public string SomeItemName { get; set; }
public string SomeItemNum { get; set; }
public bool SomeItemSelected { get; set; }
}
Poi si potrebbe scorrere/scorrere l'elenco e ottenere quelli che sono selezionati:
foreach (var item in SomeListViewList)
if (item.SomeItemSelected)
// do something
- 1. WPF: listbox a più colonne/listview?
- 2. Wpf listview evento di selezione articolo
- 3. Elenco di Android Visualizza l'intero elenco selezionato
- 4. Colore selezione ListBox WPF
- 5. JavaFX ListView Selezione multipla
- 6. Menu contestuale WPF e ListView
- 7. WPF listview trascinare senza deselezionare
- 8. Animare determinati oggetti ListView
- 9. Android ListView Rimuovi selezione
- 10. Xamarin - compensazione selezione ListView
- 11. Elenco Android Visualizza esempio frammento
- 12. Elenco Android Visualizza immagini di divisori diversi
- 13. wpf listview right-click problem
- 14. WPF ListView ScrollBar visibile a false
- 15. Elenco orizzontale winform listview
- 16. Visualizza più tipi da un singolo elenco in un ListBox WPF?
- 17. Visualizzazione selezione elenco senza riempimento e senza segno di spunta
- 18. Vista elenco WPF rimuovere colonna aggiuntiva generata
- 19. WPF ListView Virtualization Grouping
- 20. Separatore in ListView (WPF)?
- 21. WPF Listview testo vuoto
- 22. WPF Listview SelectionChanged event
- 23. DDD "Visualizza oggetti"?
- 24. Selezione tag ComboBox WPF MVVM
- 25. Visualizza oggetti sessione NHibernate
- 26. wpf listview ha perso il fuoco
- 27. jQuery Mobile visualizza l'elemento di selezione nascosto
- 28. Popolare listview da arraylist di oggetti
- 29. elenco Visualizza Filtro Android
- 30. Disabilita selezione diapositiva per un listview
Vale la pena notare che 'SelectionMode.Multiple' non include la possibilità di usare Maiusc + Fare clic per selezionare elementi consecutivi o Ctrl + A per selezionare tutto.Sembra un bug/supervisione. – Livven
Collegamento interrotto - SelectedItems. –
corretto! Grazie!! – Arcturus