private void CalculatePeakPointsFromSecond(CommandInfoArgs args) { var points = File.Points; if ((points?.Count() ?? 0) <= 0) { return; } var startSeconds = Parameter.StartSeconds; var endSeconds = Parameter.EndSeconds; // 時間の指定が逆のとき、入れ替えて計算 if (endSeconds < startSeconds) { var temp = startSeconds; startSeconds = endSeconds; endSeconds = temp; } Result.ForceSetPeakPoint(points, startSeconds, endSeconds); Result.UpdatePeakArea(points); // グラフを更新 PeakPlot.InitializeSeries2(points, Result); PeakPlot.UpdatePeakPoints(Result); PeakPlot.Update(); }
private void CalculatePeakPointsFromFactor(CommandInfoArgs args) { var points = File.Points; if ((points?.Count() ?? 0) <= 0) { return; } // ピークを評価 Result.MeasurePeakPoints(points, Parameter.StartFactor, Parameter.EndFactor, Parameter.FactorMinSeconds); Result.UpdatePeakArea(points); // グラフを更新 PeakPlot.InitializeSeries2(points, Result); PeakPlot.UpdatePeakPoints(Result); PeakPlot.Update(); }
/// <summary> /// <see cref="MainWindowViewModel"/> クラスの新しいインスタンスを初期化します。 /// </summary> public MainWindowViewModel() { File.DataPointUpdated += (sender, args) => { var points = args.Value; // ピークの表を初期化する if (points != null && points.Count() > 0) { // ピークを評価 Result.MeasurePeakPoints(points, Parameter.StartFactor, Parameter.EndFactor, Parameter.FactorMinSeconds); Result.UpdatePeakArea(points); // オプションを更新 Option.UpdateSymmetryFactor(points, Result); Option.UpdateTheoreticalPlateNumber(points, Result); // グラフを更新 PeakPlot.InitializeSeries1(points); PeakPlot.InitializeSeries2(points, Result); PeakPlot.UpdatePeakPoints(Result); PeakPlot.Update(); } else { PeakPlot.ClearSeries(); } }; Result.PropertyChanged += (sender, args) => { if (Result.IsEnabled) { var startSeconds = Result.StartPoint.X; var endSeconds = Result.EndPoint.X; Parameter.StartSeconds = startSeconds; Parameter.EndSeconds = endSeconds; } }; }