#982 – Executing Code When Selected Items in a ListBox Change
January 8, 2014 Leave a comment
You can handle the SelectionChanged event for a ListBox to react to a change in the currently selected items.
Within the event handler, you can inspect the following properties of the SelectionChangedEventArgs parameter:
- AddedItems – Collection of items just selected, type matches type of object in collection that ListBox is bound to
- AddedInfos – Can get index and ListBoxItem for added items
- RemovedItems – Collection of items just unselected
- RemovedInfos – Get index and ListBoxItem for removed items
<ListBox Name="lbActors" Margin="15" Width="200" Height="190" ItemsSource="{Binding ActorList}" SelectionMode="Extended" SelectionChanged="lbActors_SelectionChanged"/> <TextBlock Name="tbInfo"/>
private void lbActors_SelectionChanged(object sender, SelectionChangedEventArgs e) { StringBuilder sbInfo = new StringBuilder(); sbInfo.AppendLine("Added:"); foreach (object o in e.AddedItems) { Actor a = o as Actor; sbInfo.AppendLine(a.FullName); } sbInfo.AppendLine("Removed:"); foreach (object o in e.RemovedItems) { Actor a = o as Actor; sbInfo.AppendLine(a.FullName); } tbInfo.Text = sbInfo.ToString(); }