public PieChartControl(PieChartNodeModel model) { InitializeComponent(); model.PropertyChanged += NodeModel_PropertyChanged; //PointLabel = chartPoint => string.Format("{0} ({1:P})", chartPoint.Y, chartPoint.Participation); BuildUI(model); DataContext = this; }
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); } } }