Переменную LiveCharts.SeriesCollection невозможно обновить.C#

Место общения программистов C#
Anonymous
Переменную LiveCharts.SeriesCollection невозможно обновить.

Сообщение Anonymous »

Вот где я это определил:

Код: Выделить всё

private SeriesCollection _graphData;
public SeriesCollection GraphData
{
get => _graphData;
set
{
_graphData = value;
OnPropertyChanged();
}
}
А вот как я обновляю график:

Код: Выделить всё

private void UpdateGraphData()
{
if (media != null && media.StreamList.Count > 0 && media.StreamList[0].FrameList.Count > 0)
{
var stream = media.StreamList[0];
var values = new ChartValues();
double? previousValue = null;

for (int i = 0; i < stream.FrameList.Count; i++)
{
var frame = stream.FrameList[i];
double currentValue;

if (IsRedSelected)
currentValue = frame.RGBChannelsForRMS.RedChannel;
else if (IsGreenSelected)
currentValue = frame.RGBChannelsForRMS.GreenChannel;
else if (IsBlueSelected)
currentValue = frame.RGBChannelsForRMS.BlueChannel;
else
continue;

if (previousValue.HasValue)
{
double change = Math.Abs(currentValue - previousValue.Value);
values.Add(change);
}
else
{
values.Add(0);
}

previousValue = currentValue;
}

GraphData.Clear();
GraphData.Add(new LineSeries
{
Values = values,
Title = IsRedSelected ? "Red Change" : (IsGreenSelected ? "Green Change" : "Blue Change")
});
ShowFrame();
}
}
А это метод добавления указателя на график:

Код: Выделить всё

public void ShowFrame()
{
GraphData.Add(new VerticalLineSeries
{
Values = new ChartValues { FramePointer },
Stroke = System.Windows.Media.Brushes.Black,
StrokeThickness = 2,
LineSmoothness = 0,
Title = "Frame Pointer"
});
}
Проблема в том, что когда я вызываю ShowFrame из UpdateGraphData, он работает и показывает кадр. Но когда я вызываю его из другого класса, он не меняется. Он всегда равен 0.
Я проверял его в режиме отладки, когда он работает или не работает.
Это когда он работает (при первом вызове метода):
первый звонок
А это из другого звонка:
еще один звонок

Подробнее здесь: https://stackoverflow.com/questions/790 ... be-updated

Вернуться в «C#»