Hello,
i am using a xamDoughnutChart with HierarchicalRingSeries. I've got 4 'parent' items (1,1,2 and 5 childs)
I managed to change the Brushes of the four parent items but I cannot change the brushes of the child items. They always keep the same colour as their parent.
XAML:
<ig:XamDoughnutChart x:Name="doughnutChart" CenterData="{Binding DoughnutTitle}" InnerExtent="35" SliceClick="DoughnutChart_SliceClick" HorizontalAlignment="Left" Margin="200,30,0,0" VerticalAlignment="Top" Height="550" Width="550" AllowSliceExplosion="True"> <ig:XamDoughnutChart.Series> <ig:HierarchicalRingSeries x:Name="ringSeries" ItemsSource="{Binding doughnutData, UpdateSourceTrigger=PropertyChanged, IsAsync=true}" LabelMemberPath="Name" ValueMemberPath="Anteil" ChildrenMemberPath="Children" Legend="{Binding ElementName=legende}" LabelsPosition="BestFit" ToolTip="{}{Name}" LabelExtent="20" OthersCategoryThreshold="1" Loaded="ringSeries_Loaded" /> </ig:XamDoughnutChart.Series> </ig:XamDoughnutChart>
Code behind
public class Category { public string Name { get; set; } public double Anteil { get; set; } } public class HierarchicalCategory : Category { public HierarchicalCategory() { this.Children = new Collection<HierarchicalCategory>(); } public Collection<HierarchicalCategory> Children { get; private set; } }
doughnutData = new BindingList<HierarchicalCategory>() { new HierarchicalCategory { Name = "Item1" , Anteil = 10}, new HierarchicalCategory { Name = "Item2", Anteil = 0 }, new HierarchicalCategory { Name = "Item3", Anteil = 10 }, new HierarchicalCategory { Name = "Item4", Anteil = 80 }, }; doughnutData[0].Children.Add(new HierarchicalCategory { Name = "Stopped", Anteil = 100 }); doughnutData[1].Children.Add(new HierarchicalCategory { Name = "Stopped", Anteil = 100 }); doughnutData[2].Children.Add(new HierarchicalCategory { Name = "Stopped", Anteil = 50 }); doughnutData[2].Children.Add(new HierarchicalCategory { Name = "Error", Anteil = 50 }); doughnutData[3].Children.Add(new HierarchicalCategory { Name = "Test1", Anteil = 10 }); doughnutData[3].Children.Add(new HierarchicalCategory { Name = "Test2", Anteil = 70 }); doughnutData[3].Children.Add(new HierarchicalCategory { Name = "Test3", Anteil = 10 }); doughnutData[3].Children.Add(new HierarchicalCategory { Name = "Test4", Anteil = 10 }); doughnutData[3].Children.Add(new HierarchicalCategory { Name = "Test5", Anteil = 5 });
private void UpdateColors() { var items = doughnutData; if (items == null) return; var brushes = new BrushCollection(); foreach (var item in items) { brush = ... //Do some stuff to determine colour and ignore items with value < threshold brush = ... brushes.Add(brush); } ringSeries.Brushes = brushes; OnPropertyChanged("doughnutData"); }
The first 4 Brushes added match to the 4 parent items. Brushes 5-13 don't have any effect.
Thanks for your support
After investigating your inquiry further and doing some research, this has been determined to be a new product idea. You can suggest new product ideas for future versions (or vote for existing ones) at http://ideas.infragistics.com.Submitting your idea will allow you to communicate directly with our product management team, track the progress of your idea at any time, see how many votes it got, read comments from other developers in the community, and see if someone from the product team has additional questions for you.Remember when submitting your idea to explain the context in which a feature would be used and why it is needed as well as anything that would prevent you from accomplishing this today. You can even add screenshots to build a stronger case. Remember that for your suggestion to be successful, you need other members of the community to vote for it. You can also link back to this thread for additional details.Thank you in advance to submitting your product idea.
You may have a look at this blog post that describes how to achieve your requirements using the RingSeries: http://es.infragistics.com/community/blogs/marina_stoyanova/archive/2013/10/24/how-to-build-xaml-doughnut-chart.aspx
Hope that helps!
Best Regards,Nelly TachevaInfragistics, Inc.