Привязка к ObservableCollection вызывает утечку памяти
Я связываю ObservableCollection с AreaSeries. OC часто обновляется, и каждый раз, когда он обновляется, он использует больше памяти, без сбора старых данных, поэтому он просто продолжает расти.
Вот мой XAML:
<charting:AreaSeries Name="areaSeries" ItemsSource="{Binding Path=Data}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" DependentValueBinding="{Binding Path=Y}" IndependentValueBinding="{Binding Path=X}" TransitionDuration="00:00:00">
<charting:AreaSeries.DataPointStyle>
<Style TargetType="charting:AreaDataPoint">
<Setter Property="Width" Value="0"/>
<Setter Property="Height" Value="0"/>
<Setter Property="Background" Value="DarkBlue"/>
</Style>
</charting:AreaSeries.DataPointStyle>
</charting:AreaSeries>
Data
является ObservableCollection типа PointViewModel
:
public ObservableCollection<PointViewModel> Data
{
get { return m_data; }
}
PointViewModel
инвентарь ViewModelBase
:
public class PointViewModel : ViewModelBase
а также ViewModelBase
инвентарь INotifyPropertyChanged, IDisposable
,
Вот как Data
обновлено:
int xPos = 0;
foreach (float fv in m_fHistogramValues)
{
if (m_data.Count - 1 < xPos)
m_data.Add(new PointViewModel(m_fHistogramXValues[xPos], fv, false));
else
{
m_data[xPos].X = m_fHistogramXValues[xPos];
m_data[xPos].Y = fv;
}
xPos++;
}
Все, что я могу найти в Интернете, говорит о том, что IPropertyNotified реализовано, чтобы избежать утечек памяти, но я думаю, что оно реализовано правильно. Я что-то пропустил?