Если бы я сказал «черт с ним!», Я мог бы просто дать своему ListView с SelectionMode = «Multiple» имя и иметь возможность очень легко получить все выбранные элементы. Но я стараюсь как можно больше придерживаться MVVM, и я хочу каким-то образом привязать данные к ObservableCollection, которая содержит значение из столбца Name для каждого выбранного элемента. Как в мире вы делаете это? Одиночный выбор прост, но решение с множественным выбором не очевидно для меня с моими текущими знаниями WPF / MVVM.
Я прочитал этот вопрос на SO , и хотя он дает мне некоторое хорошее представление, я не знаю, как добавить необходимую привязку к строке, потому что я использую ListView с GridView. как его представление, а не ListBox.
Вот как выглядит мой XAML:
<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>
Похоже, что правильно сделать, это привязать данные свойства IsSelected каждой строки к каждому объекту, хранящемуся в ObservableCollection, к которой я привязываю данные. Я просто не понял, как это сделать.