好的,这就是我想要做的。我需要在单个图表控件中使用多个列表图表。使用 Sheog 在这篇文章中的回答没有任何问题:
https://stackoverflow.com/a/10604545/1836291
问题是直到运行时我才知道需要多少图表。所以我的想法是将其放入项目控件并将数据模板设置为 LineSeries,如下所示:
<ItemsControl x:Name="pieChart">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<chartingToolkit:Chart DataContext="{Binding}" Title="Pie Series Demo" Margin="0" Background="#FF48474B" Height="400"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<chartingToolkit:LineSeries DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding}" IsSelectionEnabled="True" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
还有我的数据:
List<KeyValuePair<string, int>> valueList = new List<KeyValuePair<string, int>>();
valueList.Add(new KeyValuePair<string, int>("Developer", 60));
valueList.Add(new KeyValuePair<string, int>("Misc", 20));
valueList.Add(new KeyValuePair<string, int>("Tester", 50));
valueList.Add(new KeyValuePair<string, int>("QA", 30));
valueList.Add(new KeyValuePair<string, int>("Project Manager", 40));
List<KeyValuePair<string, int>> valueList2 = new List<KeyValuePair<string, int>>();
valueList2.Add(new KeyValuePair<string, int>("Developer", 40));
valueList2.Add(new KeyValuePair<string, int>("Misc", 40));
valueList2.Add(new KeyValuePair<string, int>("Tester", 40));
valueList2.Add(new KeyValuePair<string, int>("QA", 40));
valueList2.Add(new KeyValuePair<string, int>("Project Manager", 20));
var dataSourceList = new List<List<KeyValuePair<string, int>>>();
dataSourceList.Add(valueList);
dataSourceList.Add(valueList2);
pieChart.DataContext = dataSourceList;
我的感觉是问题出在我的数据绑定的某个地方,但是我对此知之甚少,无法对其进行故障排除。
好吧,我发现了这个:
以编程方式创建 ColumnSeries WPF 工具包图表
它实际上工作得很好,但是我仍然想知道如何在 XAML 中做到这一点。
谢谢,