/// <summary> /// Initializes a new instance of the <see cref="FunctionListVM"/> class. /// </summary> /// <param name="functionalListVMContainer"> The container file of the saved <see cref="FunctionListVM"/>. </param> /// <param name="smallestXValue"> The smallest value on x axis. </param> /// <param name="biggestXValue"> The biggest value on x axis. </param> /// <param name="smallestYValue"> The smallest value on y axis. </param> /// <param name="biggestYvalue"> The biggest value on y axis. </param> public FunctionListVM(FunctionalListVMContainer functionalListVMContainer, double smallestXValue, double biggestXValue, double smallestYValue, double biggestYvalue) { this.TrigFunctions = new ObservableCollection <TrigFunctionVM>(); this.PolyFunctions = new ObservableCollection <PolyFunctionVM>(); this.removeCommand = new Command(obj => { var functionVM = obj as TrigFunctionVM; if (functionVM != null) { this.TrigFunctions.Remove(functionVM); this.CalculateBiggestYANDSmallestY(); } }); this.removeCommandPoly = new Command(obj => { var functionVM = obj as PolyFunctionVM; if (functionVM != null) { this.PolyFunctions.Remove(functionVM); this.CalculateBiggestYANDSmallestY(); } }); foreach (var item in functionalListVMContainer.PolyFunctionVMContainers) { var temp = new PolyFunctionVM(item, this.removeCommandPoly); temp.OnPolyFunctionChanged += this.DrawNewPolyLineForPolyFunction; this.PolyFunctions.Add(temp); } foreach (var item in functionalListVMContainer.TrigFunctionVMContainers) { var temp = new TrigFunctionVM(item, this.removeCommand); temp.OnTrigFunctionChanged += this.DrawNewPolyLineForTrigFunction; this.TrigFunctions.Add(temp); } this.smallestxValue = smallestXValue; this.bigestxValue = biggestXValue; this.smallestyValue = smallestYValue; this.bigestyValue = biggestYvalue; this.DegreeOfPolyFunction = 2; this.saveFileDialogue = new SaveFileDialog(); this.openFileDialog1 = new OpenFileDialog(); this.saveFileDialogue.Filter = "dat files (*.dat)|*.dat"; this.openFileDialog1.Filter = "dat files (*.dat)|*.dat"; this.DrawNewPolyLines(); }
/// <summary> /// Initializes a new instance of the <see cref="MasterVMContainer"/> class. /// </summary> /// <param name="gridVM"> The grid of the view. </param> /// <param name="functionListVM"> The functions of the view. </param> public MasterVMContainer(GridVM gridVM, FunctionListVM functionListVM) { this.GridVMContainer = new GridVMContainer(gridVM); this.FunctionalListVMContainer = new FunctionalListVMContainer(functionListVM); }