private void SetupPlot(int id, Grid shipDataGrid) { Logger.Info("Initializing ship's plot"); ShipHistory[0].Values.CollectionChanged += UpdateDisplay; ShipHistory[0].Values.CollectionChanged += RecalculateAverage; _cartesianChart = new CartesianChart { Hoverable = false, Margin = new Thickness(0, 0, 0, 5) }; shipDataGrid.Children.Add(_cartesianChart); Grid.SetRow(_cartesianChart, id + 1); Grid.SetColumn(_cartesianChart, 1); Binding dataBinding = new Binding("ShipData") { Source = this }; _cartesianChart.SetBinding(CartesianChart.SeriesProperty, dataBinding); Logger.Info("Initializing ship's plot finished"); }
private void B_add_Click(object sender, RoutedEventArgs e) { var cartesianCount = (int)(nudRowCount.Value * nudColumnCount.Value); var colmunCount = (int)nudColumnCount.Value; var rowCount = (int)nudRowCount.Value; cartesinGrid.Children.Clear(); if (dpList.Count > cartesianCount) { dpList.RemoveRange(cartesianCount - 1, dpList.Count - cartesianCount); } var cgcd = cartesinGrid.ColumnDefinitions; if (cgcd.Count > colmunCount) { cgcd.RemoveRange(colmunCount - 1, cgcd.Count - colmunCount); } var cgrd = cartesinGrid.RowDefinitions; if (cgrd.Count > rowCount) { cgrd.RemoveRange(rowCount - 1, cgrd.Count - rowCount); } for (int i = 0; i < rowCount; i++) { for (int j = 0; j < colmunCount; j++) { DockPanel dp; if (dpList.Count > i * colmunCount + j) { dp = dpList[i * colmunCount + j]; Debug.WriteLine($"row{i} colmun{j} : dp reuse"); } else { dp = new DockPanel(); var cc = new CartesianChart(); cc.SetBinding(CartesianChart.SeriesProperty, new Binding("SeriesCollection")); dp.Children.Add(cc); dpList.Add(dp); Debug.WriteLine($"row{i} colmun{j} : dp new"); } if (cartesinGrid.Children.IndexOf(dp) == -1) { cartesinGrid.Children.Add(dp); } if (cartesinGrid.RowDefinitions.Count <= i) { var rd = new RowDefinition(); rd.Height = new GridLength(1.0, GridUnitType.Star); cartesinGrid.RowDefinitions.Add(rd); } if (cartesinGrid.ColumnDefinitions.Count <= j) { var cd = new ColumnDefinition(); cd.Width = new GridLength(1.0, GridUnitType.Star); cartesinGrid.ColumnDefinitions.Add(cd); } Grid.SetRow(dp, i); Grid.SetColumn(dp, j); } } Debug.WriteLine(""); }