У меня есть график серии линий, который называется "lineSeries1".
Я бы хотел, чтобы эта диаграмма заполнялась и обновлялась во время выполнения, в зависимости от двух переменных. «currentPos» будет осью X, а «бюджет» будет осью Y. Кроме того, «бюджет» можно изменить значение во время выполнения.
По сути, я просто хотел бы знать, как программно устанавливать значения на графике. Например, всякий раз, когда создается новый текущий тариф / бюджет или когда изменяется существующий бюджет.
Как мне это сделать в Silverlight C #? по этому вопросу очень мало документации ...
РЕДАКТИРОВАТЬ: после некоторого исследования, я наткнулся на этот учебник: http://www.a2zdotnet.com/View.aspx?Id=136. С некоторым вдохновением с этого сайта я придумал свой собственный код, который не работает ...
Вот мой XAML:
<toolkit:Chart x:Name="theChart">
<toolkit:LineSeries x:Name="lineSeries1" DependentValuePath="CurrentPos" IndependentValuePath="Budget"></toolkit:LineSeries>
</toolkit:Chart>
Вот мой класс:
public class oneEvent
{
private int _CurrentPos;
private int _Budget;
public oneEvent(int currentPos, int budget)
{
_CurrentPos = currentPos;
_Budget = budget;
}
public int CurrentPos
{
get { return _CurrentPos; }
set { _CurrentPos = value; }
}
public int Budget
{
get { return _Budget; }
set { _Budget = value; }
}
}
и вот мой код, который заполняет график линий:
public MainPage()
{
InitializeComponent();
List<oneEvent> list = new List<oneEvent>();
list.Add(new oneEvent(0, 8000));
list.Add(new oneEvent(1, 9000));
list.Add(new oneEvent(2, 10000));
list.Add(new oneEvent(3, 11000));
list.Add(new oneEvent(4, 12000));
list.Add(new oneEvent(5, 9000));
list.Add(new oneEvent(6, 500));
list.Add(new oneEvent(7, 1000));
try
{
lineSeries1.ItemsSource = list;
}
catch (System.Exception excep)
{
MessageBox.Show(excep.Message);
}
}
Когда я запускаю это, я получаю сообщение о том, что «ссылка на объект не установлена для экземпляра объекта». Что я делаю не так?
EDIT:
ок, разобрался с моей проблемой.
Вместо написания lineSeries1.ItemsSource = list;
,
Я должен был написать LineSeries lineseries = theChart.Series[0] as LineSeries;
lineseries.ItemsSource = list;
Я не знаю почему, но это работает ...