我试图通过为每个LineSeries对象定义不同的DataFieldY来使用相同的itemsource对象来实例化多个线系列。
当我拥有和使用多个属性(如
)时,我首先开始工作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;
}
也许我也试图以错误的方式做到这一点:)
干杯
答案 0 :(得分:1)
将b
和f
变为公共属性:
class complex
{
...
public Backward b { get; set; }
public Forward f { get; set; }
}
然后,您应该能够指定嵌套属性路径,例如:
DataFieldY = "b.backValue";