【发布时间】:2011-02-15 10:58:12
【问题描述】:
你们中有人知道用 wpftoolkit 创建多个系列图表的方法吗?简而言之,我想要的是对相同的独立值有更多的依赖值。到目前为止,我找不到任何全面的机制来使其正常工作。任何帮助都深表感谢。
【问题讨论】:
标签: c# wpf wpftoolkit silverlight-toolkit
你们中有人知道用 wpftoolkit 创建多个系列图表的方法吗?简而言之,我想要的是对相同的独立值有更多的依赖值。到目前为止,我找不到任何全面的机制来使其正常工作。任何帮助都深表感谢。
【问题讨论】:
标签: c# wpf wpftoolkit silverlight-toolkit
如果你想要一个包含两个 LineSeries 的图表
您的 .cs 文件中可能有 2 个不同的列表,其中包含数据:
List<KeyValuePair<DateTime, int>> llistaGastats = new List<KeyValuePair<DateTime, int>>();
List<KeyValuePair<DateTime, int>> llistaPreu = new List<KeyValuePair<DateTime, int>>();
然后您必须创建另一个列表来对这两个列表进行分组:
var dataSourceList = new List<List<KeyValuePair<DateTime, int>>>();
dataSourceList.Add(llistaGastats);
dataSourceList.Add(llistaPreu);
并将其分配给DataContext
lineChart.DataContext = dataSourceList;
在您的 .xaml 文件中,您应该创建一个带有两个 LineSeries 的 Chart,并使用 ItemSource 字段获取每行的值。
这是 .xaml:
<chartingToolkit:Chart Name="lineChart"
Title="Consum KW"
VerticalAlignment="Top"
Margin="0,58,58,0"
Height="382"
Grid.Column="1">
<chartingToolkit:LineSeries Name="KWG"
Title="KW Gastats"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [0]}"
IsSelectionEnabled="True"/>
<chartingToolkit:LineSeries Name="KWP"
Title="Preu KW"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [1]}"
IsSelectionEnabled="True" />
</chartingToolkit:Chart>
ItemsSource="{Binding [0]}" 绑定分配给 DataContext 的列表中的第一项。
ItemsSource="{Binding [1]}" 绑定第二个
【讨论】:
您可能需要考虑alternatives,根据过去的经验,WPF 工具包中的图表组件非常僵化且难以扩展。我还遇到了许多工具包中的错误问题,积极的开发似乎完全停止了。有一些非常好的免费替代品值得考虑。
【讨论】:
Beat Kiener 在Databinding Multi-Series Charts 上有一篇很棒的文章。在其中,他实现了自己的MultiChart 类,派生自Chart。
这对你来说可能为时已晚,但至少它可以帮助其他人。
【讨论】:
为每个系列创建一个包含一列的数据表,将五个列系列(如果是柱形图和五个系列)添加到图表中,并为每个列名添加 DependentValueBinding,将 ItemsSource 设置为数据表(每列的 ItemsSource 相同系列)。
如果您希望我添加代码,请告诉我。
【讨论】: