Beispiel #1
0
        public PieChartControl(PieChartNodeModel model)
        {
            InitializeComponent();

            model.PropertyChanged += NodeModel_PropertyChanged;

            //PointLabel = chartPoint => string.Format("{0} ({1:P})", chartPoint.Y, chartPoint.Participation);

            BuildUI(model);

            DataContext = this;
        }
Beispiel #2
0
        private void BuildUI(PieChartNodeModel model)
        {
            if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected)
            {
                var seriesRange = new PieSeries[]
                {
                    new PieSeries {
                        Title = "Item1", Values = new ChartValues <double> {
                            100.0
                        }, DataLabels = true                                                                      /*, LabelPoint = PointLabel*/
                    },
                    new PieSeries {
                        Title = "Item2", Values = new ChartValues <double> {
                            100.0
                        }, DataLabels = true                                                                      /*, LabelPoint = PointLabel*/
                    },
                    new PieSeries {
                        Title = "Item3", Values = new ChartValues <double> {
                            100.0
                        }, DataLabels = true                                                                      /*, LabelPoint = PointLabel*/
                    }
                };

                PieChart.Series.AddRange(seriesRange);
            }

            else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected)
            {
                if (model.Labels.Count == model.Values.Count && model.Labels.Count > 0)
                {
                    var seriesRange = new PieSeries[model.Labels.Count];

                    for (var i = 0; i < model.Labels.Count; i++)
                    {
                        seriesRange[i] = new PieSeries
                        {
                            Title  = model.Labels[i],
                            Values = new ChartValues <double> {
                                model.Values[i]
                            },
                            Fill       = model.Colors[i],
                            DataLabels = true,
                            //LabelPoint = PointLabel
                        };
                    }

                    PieChart.Series.AddRange(seriesRange);
                }
            }
        }