Am Using the checkbox in listbox items, how to get the selected checkboxes from the list
<ListBox ItemsSource="{Binding NameList}" HorizontalAlignment="Left" Margin="16,68,0,12" Name="listBox1" Width="156" IsEnabled="True" SelectionMode="Multiple" Focusable="True" IsHitTestVisible="True" IsTextSearchEnabled="False" FontSize="12" Padding="5" SelectionChanged="listBox1_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Content="{Binding Path=CNames}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
I tried to loop thru the selected items in the listboxitems, but it throws exception in listboxitem
private void btnSelected(object sender, RoutedEventArgs e)
{
foreach (ListBoxItem item in listBox1.Items)
{
if (item.ToString() == "true")
{
MessageBox.Show(item.Content.ToString());
}
}
}
thanks
shreesh chandra shukla
18-Jul-2013You 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
Your selected items are now available in the ObservableCollection rather than looping through UI elements