/// <summary>
        /// Initializes a new instance of the <see cref="IterationTrackParameterViewModel{TThing, TValueSet}"/> class.
        /// The constructor
        /// </summary>
        /// <param name="session">The <see cref="ISession"/> </param>
        /// <param name="iteration">The <see cref="Iteration"/></param>
        /// <param name="iterationTrackParameter">The <see cref="IterationTrackParameter"/> instance used for this widget</param>
        public IterationTrackParameterViewModel(ISession session, Iteration iteration, IterationTrackParameter iterationTrackParameter)
        {
            this.lineSeriesCollection = new ReactiveList <LineSeries>();
            this.OnDeleteCommand      = ReactiveCommand.Create();

            this.OnToggleChartVisibilityCommand = ReactiveCommand.Create();
            this.OnToggleChartVisibilityCommand.Subscribe(_ => this.ToggleChartVisibility());

            this.OnRefreshCommand = ReactiveCommand.Create();
            this.OnRefreshCommand.Subscribe(async _ => await this.RefreshData());

            this.OnCopyDataCommand = ReactiveCommand.Create();
            this.OnCopyDataCommand.Subscribe(_ => this.CopyTextToClipboard());

            this.Session   = session;
            this.iteration = iteration;
            this.iterationTrackParameter = iterationTrackParameter;

            this.BlockVisible = Visibility.Visible;
            this.ChartVisible = Visibility.Collapsed;

            this.ModelCode  = this.iterationTrackParameter.ModelCode;
            this.Title      = this.iterationTrackParameter.ControlTitle;
            this.Unit       = this.iterationTrackParameter.UnitSymbol;
            this.AxisXTitle = "Revisions";
            this.AxisYTitle = this.Unit;

            this.Disposables.Add(CDPMessageBus.Current.Listen <ObjectChangedEvent>(iterationTrackParameter)
                                 .Where(objectChange => objectChange.EventKind == EventKind.Updated)
                                 .ObserveOn(RxApp.MainThreadScheduler)
                                 .Subscribe(async _ => await this.RefreshData()));

            CDPMessageBus.Current.Listen <ObjectChangedEvent>(this.iterationTrackParameter.ParameterOrOverride)
            .Where(objectChange => objectChange.EventKind == EventKind.Removed)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(async _ => await this.OnDeleteCommand.ExecuteAsyncTask());

            this.OnRefreshCommand.Execute(null);
        }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IterationTrackParameterDetailViewModel"/> class.
 /// </summary>
 /// <param name="iterationTrackParameter">
 /// The iteration track parameter
 /// </param>
 public IterationTrackParameterDetailViewModel(IterationTrackParameter iterationTrackParameter)
 {
     this.iterationTrackParameter = iterationTrackParameter;
     this.Title = iterationTrackParameter.ControlTitle;
 }