Home > DeveloperSection > Interviews > Q: When the SelectionChanged event gets raised, how do I get the new selection?

Posted on    March-12-2011 12:00 AM

 WPF WPF 
Ratings:
 1 Answer(s)
  2967  View(s)
Rate this:

Awadhendra Tiwari

Total Post:510

Points:2550
Posted on    March-12-2011 1:00 AM

The SelectionChanged event is designed to handle controls that allow multiple selections,
so it can be a little confusing for a single-selection selector such as ComboBox. The
SelectionChangedEventArgs type passed to event handlers has two properties of type
IList: AddedItems and RemovedItems. AddedItems contains the new selection and
RemovedItems contains the previous selection.

e.g.
void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
object newSelection = e.AddedItems[0];
}
Like this code, never assume that there’s a selected item! Besides the fact that ComboBox’s
selection can be cleared programmatically, it can get cleared by the user when IsEditable is
true and IsReadOnly is false. In this case, if the user changes the selection box text to
something that doesn’t match any item, the SelectionChanged event is raised with an
empty AddedItems collection.


Don't want to miss updates? Please click the below button!

Follow MindStick