public TopLevelViewModel(ITraceTabViewModelFactory traceTabViewModelFactory, ISourcesTabViewModel sourcesTabViewModel, IMultiProbeDataViewModel multiProbeDataViewModel)
        {
            this._traceTabViewModelFactory = traceTabViewModelFactory;
            this._sourcesTabViewModel      = sourcesTabViewModel;

            this._traceTabViewModels = new ObservableCollection <ITraceTabViewModel>
            {
                this.TraceTabViewModelFactory.Create(multiProbeDataViewModel)
            };

            this._multiProbeDataViewModel = multiProbeDataViewModel;
        }
        public DerivedSourceConfigViewModel(ISourcesTabViewModel sourcesTabViewModel, string name, string colorName)
        {
            this._sourcesTabViewModel = sourcesTabViewModel;

            this._name                   = name;
            this._color                  = (Color)ColorConverter.ConvertFromString(colorName);
            this._colorString            = colorName;
            this._xResolution            = 1920;
            this._operation              = "Invert";
            this._sourceConfigViewModel1 = null;
            this._sourceConfigViewModel2 = null;

            this._newName                   = this._name;
            this._newColor                  = this._color;
            this._newColorString            = this._colorString;
            this._newXResolution            = this._xResolution;
            this._newOperation              = this._operation;
            this._newSourceConfigViewModel1 = this._sourceConfigViewModel1;
            this._newSourceConfigViewModel2 = this._sourceConfigViewModel2;
        }
 public IDerivedSourceConfigViewModel Create(ISourcesTabViewModel sourcesTabViewModel, string name, string colorName)
 {
     // note that while sourcesTabViewModel should be the same for all instances, adding it to the constructor for the factory would create a circular dependency
     return(new DerivedSourceConfigViewModel(sourcesTabViewModel, name, colorName));
 }