WPF工具包图表 - 折叠图表点

时间:2010-12-13 12:02:34

标签: wpf xaml charts wpftoolkit

我有一个包含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

欢呼帮助。

1 个答案:

答案 0 :(得分:4)

将点样式设置为折叠将无法解决您的问题,因为对象仍将位于影响渲染时间的可视树中。由于您已为数据点设置了绑定,因此删除它们的唯一方法是删除它们绑定的业务对象。

此外,由于您正在讨论性能,因此值得注意的是WPF工具包的性能比其他一些免费的图表组件差得多。请参阅charting component's performance comparison上的这篇文章 - 它是在比较Silverlight版本时编写的,但根据我的经验,它也适用于WPF。使用Visiblox,DD3或Visifire可能会显着提高图表的性能。 (完全披露:我参与了Visiblox的开发)