Даже если вы не собираетесь идти по полному маршруту MVVM, эту проблему лучше всего решить, разделив пользовательский интерфейс и слои данных в вашем приложении.
Создайте класс элемента данных, который включает логическое свойство IsSelected, и установите для ListBox ItemsSource
набор (например, ObservableCollection
) этих элементов. Для двухсторонней привязки данных класс элементов данных должен реализовывать INotifyPropertyChanged
.
В вашем пользовательском интерфейсе создайте DataTemplate
для свойства ListBox ItemTemplate
, которое включает CheckBox, связанный с IsSelected.
Таким образом, вы можете сканировать коллекцию элементов данных (используя Linq или иным образом), чтобы найти те, которые выбраны.