Se dovessi dire "diamine con quello!", Potrei semplicemente dare il mio ListView con SelectionMode = "Multiple" un nome, ed essere in grado di ottenere tutti gli elementi selezionati molto facilmente. Ma sto cercando di aderire a MVVM il più possibile, e voglio in qualche modo associare ad un ObservableCollection che detiene il valore dalla colonna Nome per ogni elemento selezionato. Come diavolo fai questo? La selezione singola è semplice, ma la soluzione di selezione multipla non è ovvia per me con la mia attuale conoscenza di WPF/MVVM. I read this question on SO e, mentre mi dà una buona idea, non so come aggiungere il binding necessario a una riga, perché sto usando un ListView con un GridView come View, non un ListBox.ListView + MultipleSelect + MVVM =?
Ecco ciò che il mio XAML appare fondamentalmente come:
<ListView DockPanel.Dock="Top" ItemsSource="{Binding ClientPreview}" SelectionMode="Multiple">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Address">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Address}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Sembra la cosa giusta da fare è quello di DataBind proprietà IsSelected di ogni riga per ogni oggetto memorizzato nel ObservableCollection sto associazione dati a. Non ho capito come farlo.
ah! Ha senso quando ti viene consegnato su un piatto d'argento. Grazie mille, Jobi. Darò quel vortice stasera e segnerò questo come risposta una volta che lo confermerò. – Dave
Jobi, che ha fatto il trucco, grazie !!! – Dave