private void OnSelectedItemsChanged(IList oldValue, IList newValue)
{
UpdateSummary(newValue);
// Fire SelectionChanged event
var handler = SelectionChanged;
if (null != handler)
{
IList removedItems = new List<object>();
if (null != oldValue)
{
foreach (object o in oldValue)
{
if (null == newValue || !newValue.Contains(o))
{
removedItems.Add(o);
}
}
}
IList addedItems = new List<object>();
if (null != newValue)
{
foreach (object o in newValue)
{
if (null == oldValue || !oldValue.Contains(o))
{
addedItems.Add(o);
}
}
}
handler(this, new SelectionChangedEventArgs(removedItems, addedItems));
}
}