private void MediaSegments_SegmentAdded(object sender, MediaSegmentEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)(() =>
     {
         _mediaSegments.Value.Add(new MediaSegmentViewmodel((Media as IPersistentMedia), e.Segment));
         NotifyPropertyChanged(nameof(HasSegments));
     }));
 }
 private void _mediaSegments_SegmentAdded(object sender, MediaSegmentEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action) delegate()
     {
         IPersistentMedia media = _loadedMedia as IPersistentMedia;
         if (media != null && sender == media.MediaSegments)
         {
             var newVM = new MediaSegmentViewmodel(media, e.Segment);
             _mediaSegments.Add(newVM);
             if (e.Segment == _lastAddedSegment)
             {
                 SelectedSegment = newVM;
             }
         }
     });
 }
 private void _mediaSegments_SegmentRemoved(object sender, MediaSegmentEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)(() =>
     {
         var segment = _mediaSegments.Value.FirstOrDefault(ms => ms.MediaSegment == e.Segment);
         if (segment != null)
         {
             _mediaSegments.Value.Remove(segment);
         }
         NotifyPropertyChanged(nameof(HasSegments));
         if ((Media is IPersistentMedia) && (Media as IPersistentMedia).MediaSegments.Count == 0)
         {
             IsExpanded = false;
         }
     }));
 }
 private void _mediaSegments_SegmentRemoved(object sender, MediaSegmentEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action) delegate()
     {
         IPersistentMedia media = _loadedMedia as IPersistentMedia;
         if (media != null && sender == media.MediaSegments)
         {
             var vM = _mediaSegments.FirstOrDefault(s => s.MediaSegment == e.Segment);
             if (vM != null)
             {
                 _mediaSegments.Remove(vM);
             }
             if (_selectedSegment == vM)
             {
                 SelectedSegment = null;
             }
         }
     });
 }