OxyPlot InvalidatePlot不刷新数据

时间:2014-05-13 12:47:29

标签: c# wpf .net-4.5 oxyplot

我试图动态地将点数添加到LineSeries,但在使图表无效后它不会显示。使用最新的OxyPlot版本2014.1.301.1,直接来自NuGet。如果我将ItemSource设置为新列表,但是编辑Items属性不会执行任何操作。

XAML:

<Window x:Class="SparrowTesting.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sparrow="http://sparrowtoolkit.codeplex.com/wpf"
         xmlns:oxy="http://oxyplot.codeplex.com"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <oxy:Plot Title="OxyTest" x:Name="chart">
            <oxy:Plot.Series>
                <oxy:LineSeries></oxy:LineSeries>
            </oxy:Plot.Series>
        </oxy:Plot>
        <Button Grid.Row="1" x:Name="button1" Click="button1_Click">
            <TextBlock>GO</TextBlock>
        </Button>
    </Grid>
</Window>

代码:

 chart.Series[0].Items.Add(new DataPoint(1, 2));
 chart.InvalidatePlot(true);//Does nothing

2 个答案:

答案 0 :(得分:3)

忽略Items属性并仅使用ItemSource,它就像魅力一样。

chart.Series[0].ItemsSource = new List<DataPoint>();
(chart.Series[0].ItemsSource as List<DataPoint>).Add(new DataPoint())
//Profit

答案 1 :(得分:0)

我还没有能够工作.mdl-layout__container { position: absolute; // --> change to "relative" width: 100%; height: 100%; ,但chart.InvalidatePlot(true);运作良好。我会尝试将它放在你的新数据点之前,如下所示:

chart.Series.Clear();