in Samples-NetCore/MusicManager/MusicManager.Presentation/Controls/SelectionBehavior.cs [76:115]
private static void ListCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (syncListsThatAreUpdating.Contains(sender)) { return; }
var multiSelector = multiSelectorWithObservableList.First(x => x.Item2 == sender).Item1;
selectorsThatAreUpdating.Add(multiSelector.Selector);
try
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (var items in e.NewItems)
{
multiSelector.SelectedItems.Add(items);
}
}
else if (e.Action == NotifyCollectionChangedAction.Remove)
{
foreach (var items in e.OldItems)
{
multiSelector.SelectedItems.Remove(items);
}
}
else if (e.Action == NotifyCollectionChangedAction.Reset)
{
multiSelector.SelectedItems.Clear();
foreach (var item in (IEnumerable)sender)
{
multiSelector.SelectedItems.Add(item);
}
}
else
{
throw new NotSupportedException();
}
}
finally
{
selectorsThatAreUpdating.Remove(multiSelector.Selector);
}
}