Example #1
0
        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");
        }
Example #2
0
        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("");
        }