Я бы посоветовал вам связать ваш ListBox
с набором элементов, которые имеют логическое свойство, с которым вы можете связать свойство CheckBox
IsChecked
.Что-то вроде:
public class Kurssit : INotifyPropertyChanged {
private string _Oppilaanimi;
private bool _IsChecked;
public string OppilaanNimi {
get { return _Oppilaanimi; }
set {
if (_Oppilaanimi != value) {
_Oppilaanimi = value;
PropertyChanged(this, new PropertyChangedEventArgs("OppilaanNimi"));
}
}
public bool IsChecked {
get { return _IsChecked ; }
set {
if (_IsChecked != value) {
_IsChecked = value;
PropertyChanged(this, new PropertyChangedEventArgs("IsChecked"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
Когда вы создаете эти элементы в своем операторе LINQ, сохраняйте их в переменной-члене, скажем, private ObservableCollection<Kurssit> _Kurssit
.
, а затем связывайте свой ListBox
к этой переменной-члену;
oppilaidenLista.ItemsSource = _Kurssit;
Затем измените свой пользовательский элемент управления ListBoxItem
на более похожий;
<Grid x:Name="LayoutRoot">
<CheckBox IsChecked="{Binding IsChecked}" Height="72" HorizontalAlignment="Left" Margin="0,7,0,0" Name="checkBox" VerticalAlignment="Top" />
<TextBlock Height="55" HorizontalAlignment="Left" Margin="74,12,0,0" Name="studentName" Text= "{Binding OppilaanNimi}" VerticalAlignment="Top" Width="394" FontSize="40" />
</Grid>
Затем в обработчике щелчков вашей кнопки;
private void Tallenna_Button_Click(object sender, RoutedEventArgs e)
{
List<Kurssit> selected = _Kurssit.Where(x => x.IsSelected == true).ToList()
// You can now operate manipulate this sublist as needed
// ie. Save this subset of items to IsolatedStorage
// Or remove the items from the original _Kurssit collection... whatever :)
}
Примечание. Поскольку переменная-член, которую вы также привязываете в этом примере, имеет тип "> ObservableCollection {T} , вызывающая Add()
, Remove()
и др., Вызовет события, а ListBox
при необходимости ответьте на эти добавления / удаления элементов управления пользовательского интерфейса для этих элементов.