我有一个这样创建的 LineChart:
<Grid.Resources>
<local:EngineMeasurementCollection x:Key="EngineMeasurementCollection"/>
</Grid.Resources>
<charting:Chart x:Name="ahorasi" Title="Engine Performance" Margin="-2,0,384,0">
<!-- Power curve -->
<charting:LineSeries
Title="Power"
ItemsSource="{StaticResource EngineMeasurementCollection}"
IndependentValueBinding="{Binding Speed}"
DependentValueBinding="{Binding Power}"
>
<!-- Vertical axis for power curve -->
<charting:LineSeries.DependentRangeAxis>
<charting:LinearAxis
Orientation="Y"
Title="Power (hp)"
Minimum="0"
Maximum="250"
Interval="50"
ShowGridLines="True"/>
</charting:LineSeries.DependentRangeAxis>
</charting:LineSeries>
<!-- Torque curve -->
<charting:LineSeries
Title="Torque"
ItemsSource="{StaticResource EngineMeasurementCollection}"
IndependentValueBinding="{Binding Speed}"
DependentValueBinding="{Binding Torque}">
<!-- Vertical axis for torque curve -->
<charting:LineSeries.DependentRangeAxis>
<charting:LinearAxis
Orientation="Y"
Title="Torque (lb-ft)"
Minimum="50"
Maximum="300"
Interval="50"/>
</charting:LineSeries.DependentRangeAxis>
</charting:LineSeries>
<charting:Chart.Axes>
<!-- Shared horizontal axis -->
<charting:LinearAxis
Orientation="X"
Title="Speed (rpm)"
Interval="1000"
ShowGridLines="True"/>
</charting:Chart.Axes>
</charting:Chart>
然后我有
public class EngineMeasurementCollection : ObservableCollection<EngineMeasurement>
{
public EngineMeasurementCollection()
{
Add(new EngineMeasurement { Speed = 1000, Torque = 100, Power = 20 });
Add(new EngineMeasurement { Speed = 2000, Torque = 160, Power = 60 });
Add(new EngineMeasurement { Speed = 3000, Torque = 210, Power = 125 });
Add(new EngineMeasurement { Speed = 4000, Torque = 220, Power = 160 });
Add(new EngineMeasurement { Speed = 5000, Torque = 215, Power = 205 });
Add(new EngineMeasurement { Speed = 6000, Torque = 200, Power = 225 });
Add(new EngineMeasurement { Speed = 7000, Torque = 170, Power = 200});
}
}
public class EngineMeasurement
{
public int Speed { get; set; }
public int Torque { get; set; }
public int Power { get; set; }
}`
当我运行我的项目时,图表完美运行,显示了在构造函数中创建的值,但这是硬编码的,我找不到添加或删除元素来更新图表的方法。
我什至不明白为什么图表在构造函数中显示提供的项目,是否创建了 EngineMeasurementCollection 的实例?自动地?我不创建新的 EngineMeasurementCollection。
我试过类似的东西:
EngineMeasurement littleitem = new EngineMeasurement();
EngineMeasurementCollection fullitems = new EngineMeasurementCollection();
littleitem.Power = 10;
littleitem.Speed = 1000;
littleitem.Torque = 50;
fullitems.Add(littleitem);
//Up to this point everything works perfect, now I want to update my chart with fullitem values in whatever possible way.
我不能做 ahorasi.ItemsSource = fullitems 因为 .ItemsSource 不存在,我真的很困惑,因为刚创建图表时效果很好,使用硬编码值,我认为更新它必须只是一个步骤,但找不到如何.