示例#1
0
 /// <summary>
 /// Logic to hook up the <see cref="RunsView" /> for UI binding.
 /// </summary>
 private void InitRunsView()
 {
     CurrentSelectedRun = null;
     if (CurrentSelectedPingJob?.Result == null)
     {
         RunsView = null;
         return;
     }
     RunsView = CollectionViewSource.GetDefaultView(CurrentSelectedPingJob.Result.Runs) as ListCollectionView;
     if (RunsView == null)
     {
         return;
     }
     RunsView.CurrentChanged += (s, e) =>
     {
         RaisePropertyChanged(() => CurrentSelectedRun);
     };
     CurrentSelectedPingJob.Result.Runs.CollectionChanged += (s, e) =>
     {
         if (e.NewItems != null)
         {
             foreach (INotifyPropertyChanged added in e.NewItems)
             {
                 added.PropertyChanged += RunsOnPropertyChanged;
             }
         }
         if (e.OldItems != null)
         {
             foreach (INotifyPropertyChanged removed in e.OldItems)
             {
                 removed.PropertyChanged -= RunsOnPropertyChanged;
             }
         }
     };
     if (RunsView.Count > 0)
     {
         RunsView.MoveCurrentToFirst();
     }
 }
示例#2
0
 private void RunsOnPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     RunsView.Refresh();
 }