public MarkerSelectorFilter()
 {
     Value = new IMarkerSelector[0];
 }
 private void SubscribeSelector(IMarkerSelector selector)
 {
     subscribedSelectors.Add(selector);
     selector.IsActiveChanged += mrkSelector_IsActiveChanged;
 }
 private void UnSubscribeSelector(IMarkerSelector selector)
 {
     subscribedSelectors.Remove(selector);
     selector.IsActiveChanged -= mrkSelector_IsActiveChanged;
 }
 private void FilterList()
 {
     if (lastCollection != null)
     {
         Value = lastCollection
                     .Where(s => (!FilterActiveOnly || s.IsActive) && s.Metadata.ContainsKey(Key))
                     .ToArray();
     }
     else
         Value = new IMarkerSelector[0];
 }