in BluetoothLEExplorer/BluetoothLEExplorer/ViewModels/AdvertisementMonitorPageViewModel.cs [226:262]
private void Advertisements_MapChanged(Windows.Foundation.Collections.IObservableMap<string, ObservableBluetoothLEAdvertisement> sender, Windows.Foundation.Collections.IMapChangedEventArgs<string> @event)
{
lock (advertisementsLock)
{
if ((@event.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemInserted) ||
(@event.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemChanged))
{
var advertisement = sender[@event.Key];
if (IsContentFilterMatch(Context.AdvertisementContentFilter, advertisement))
{
if (!AdvertisementsView.Contains(advertisement))
{
AdvertisementsView.Add(advertisement);
}
else
{
AdvertisementsView[AdvertisementsView.IndexOf(advertisement)].Update(advertisement);
}
}
}
else if (@event.CollectionChange == Windows.Foundation.Collections.CollectionChange.Reset)
{
AdvertisementsView.Clear();
}
else if (@event.CollectionChange == Windows.Foundation.Collections.CollectionChange.ItemRemoved)
{
foreach (var advertisement in AdvertisementsView)
{
if (advertisement.InternalHashString == @event.Key)
{
AdvertisementsView.Remove(advertisement);
}
}
}
}
}