Silverlight простое заполнение lineSeries программно во время выполнения - PullRequest
0 голосов
/ 28 октября 2011

У меня есть график серии линий, который называется "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; Я не знаю почему, но это работает ...

1 Ответ

1 голос
/ 08 ноября 2011

ок, разобрался с моей проблемой. Вместо написания

lineSeries1.ItemsSource = list;

, я должен был написать

LineSeries lineseries = theChart.Series[0] as LineSeries; lineseries.ItemsSource = list;

Не знаю почему, но это работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...