Сложный (?) Объект источника LineSeries

Я пытаюсь создать несколько рядов строк, используя один и тот же объект items, определив adifferent DataFieldY для каждого объекта LineSeries.

У меня это работает сначала, когда у меня есть и объект с несколькими свойствами, такими как

class simple
{
   double time;
   double value1;
   double value2;
}

Таким образом, я мог установить DataFieldY на одном графике, чтобы DataFieldY="value1" например. Теперь возникает моя проблема, мой класс немного отличается, поскольку он исходит из базы данных Mongo. Я выгляжу примерно так:

class complex
{
   double timestamp;
   Backward b;
   Forward f;
}
class Backward 
{
   double backValue;
}
class Forward
{
   double forwardValue;
}

Конечно, есть и другие переменные, и иерархия на самом деле проходит на один уровень глубже. Но это должно работать в качестве примера.

Какую строку мне нужно добавить сейчас на DataFieldY учитывая, что ItemSource теперь равняется ObservableCollection<Complex>?

Также есть ли способ, возможно, с помощью отражения, для меня, чтобы инициализировать все серии линий с помощью foreach цикл?

foreach(var s in Magic(complex))
{
    var ln = new LineSeries()
    ln.ItemSource = complexCollection
    ln.DataFieldT = s;
}

Может быть, я тоже пытаюсь сделать это неправильно:)

ура

1 ответ

Решение

Очередь b а также f в общественную собственность:

class complex
{
    ...
    public Backward b { get; set; }
    public Forward f { get; set; }
}

После этого вы сможете указать путь к вложенным свойствам, например:

DataFieldY = "b.backValue";
Другие вопросы по тегам