internal RCParameterMirrorViewModel(IRCParameterViewModel toMirror) { Name = toMirror.Name; _toMirror = toMirror; toMirror .WhenAnyValue(vm => vm.CorrelationN) .Subscribe(ObserveMirrorCorrelationN); }
internal ViewCorrelationViewModel(Arr <string> parameterNames, Matrix <double> correlations) { ParameterNames = parameterNames; var nParameters = ParameterNames.Count; RequireTrue( nParameters > 1 && nParameters == correlations.RowCount && nParameters == correlations.ColumnCount ); var rcParameterViewModels = new IRCParameterViewModel[nParameters][]; Range(0, nParameters).Iter(i => { rcParameterViewModels[i] = new IRCParameterViewModel[nParameters]; var row = correlations.Row(i); Range(0, nParameters).Iter(j => { if (j == i) { rcParameterViewModels[i][j] = new RCParameterDiagonalViewModel( ParameterNames[i], 1d ); } else { rcParameterViewModels[i][j] = new RCParameterViewModel( ParameterNames[i], default ) { CorrelationN = Round(row[j], 2) }; } }); }); _rcParameterViewModels = rcParameterViewModels; Close = ReactiveCommand.Create(HandleClose); }