silverlight在运行时以编程方式简单填充lineSeries

时间:2011-10-28 05:23:00

标签: silverlight charts

我有一个名为“lineSeries1”的系列图表。

我希望在运行时填充和更新该图表,具体取决于两个变量。 “currentPos”将是X轴,“预算”将是Y轴。此外,“预算”可以在运行时更改值。

基本上,我只想知道如何以编程方式在图表中设置值。例如,每当创建新的currentPos /预算或修改现有预算时。

如何在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);
        }
    }

当我运行它时,我得到一个消息框,说“对象引用未设置为对象的实例”。我做错了什么?

编辑: 好的,弄清楚我的问题。 而不是写lineSeries1.ItemsSource = list;, 我应该写LineSeries lineseries = theChart.Series[0] as LineSeries; lineseries.ItemsSource = list; 我不知道为什么,但它有效...

1 个答案:

答案 0 :(得分:1)

好吧,弄清楚我的问题。而不是写

lineSeries1.ItemsSource = list;

,我应该写

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

我不知道为什么,但它有效......