Am Using the checkbox in listbox items, how to get the selected checkboxes from the list
I would suggest this code:
private void save_Click(object sender, RoutedEventArgs e)
{
foreach (CheckBox item in list1.Items)
{
if (item.IsChecked)
{
MessageBox.Show(item.Content.ToString());
}
}
}
Have your template like this
<ListBox.ItemTemplate>
<DataTemplate>
........
<CheckBox Content=""
IsChecked="{Binding IsSelected, Mode=TwoWay,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListViewItem}}}" />
..........
<!-- Use Other UIElements to Show your Data -->
then the above binding will sync two way with your models isSelected and list view selection, then in code use SelectedItems.
For Each s As myPoco In myListView1.SelectedItems
' do something here with
Next
You could move the data context for each of these items away from the UI and create an ObservableCollection of objects
public ObservableCollection<CheckedItem> List { get;set;}
public class CheckedItem : INotifyPropertyChanged
{
private bool selected;
private string description;
public bool Selected
{
get { return selected; }
set
{
selected = value;
OnPropertyChanged("Selected");
}
}
public string Description
{
get { return description; }
set
{
description = value;
OnPropertyChanged("Description");
}
}
/* INotifyPropertyChanged implementation */
}
Then in your ListBox ItemTemplate
<ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=Selected}"
Content={Binding Path=Description}" />
</DataTemplate>
</ItemTemplate>
Your selected items are now available in the ObservableCollection rather than looping through UI elements