我有一个包含1000个数据点的图表,我想知道如何删除数据点?它们大大减缓了整个过程。我研究过必须改变风格,还有另一种方式吗?
Removing (collapsing) DataPoints in a LineSeries?
<Grid>
<chartingToolkit:Chart
Width="Auto" Height="Auto"
Background="Transparent" Panel.ZIndex="3">
<chartingToolkit:LineSeries Title="Symbol" Background="Transparent"
IndependentValueBinding="{Binding Path=Key}"
DependentValueBinding="{Binding Path=Value}"
ItemsSource="{Binding Path=SymbolData}"
DataContext="{Binding}">
<chartingToolkit:LineSeries.DataPointStyle>
<Style TargetType="{x:Type chartingToolkit:LineDataPoint}">
<Setter Property="Background" Value="Red"/>
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</chartingToolkit:LineSeries.DataPointStyle>
</chartingToolkit:LineSeries>
</chartingToolkit:Chart>
</Grid>
我认为上面的代码会有效,但显然不是......
进一步研究,即使这个答案也行不通:/
Removing markers from silverlight line or area series
欢呼帮助。
答案 0 :(得分:4)
将点样式设置为折叠将无法解决您的问题,因为对象仍将位于影响渲染时间的可视树中。由于您已为数据点设置了绑定,因此删除它们的唯一方法是删除它们绑定的业务对象。
此外,由于您正在讨论性能,因此值得注意的是WPF工具包的性能比其他一些免费的图表组件差得多。请参阅charting component's performance comparison上的这篇文章 - 它是在比较Silverlight版本时编写的,但根据我的经验,它也适用于WPF。使用Visiblox,DD3或Visifire可能会显着提高图表的性能。 (完全披露:我参与了Visiblox的开发)