绑定如何与SQL Server和Telerik图表一起使用?

时间:2012-04-23 14:33:02

标签: c# silverlight xaml mvvm telerik

如何将数据从SQL Server绑定到telerik折线图?

目前我的设置是我有一个计划任务,它检索一些信息(为了简单起见,我们假设这只是一个整数值)。然后,此信息将与运行计划任务的日期时间一起存储在我的数据库中。

我想要做的是创建一个整数随时间变化的图表(沿Y轴标记的值和沿X的时间)。

Teleriks网站上的大多数绑定示例都涉及静态类,其中数据被硬编码到XAML文件中。

我想按照自己的意愿构建和检索数据的最佳方式是什么?

我正在查看this示例,但是它没有详细说明如何从绑定中实际检索数据以及绑定的工作方式。

非常感谢。

1 个答案:

答案 0 :(得分:0)

最近,我参与了这样一个项目,这就是我的做法(虽然我有点复杂,因为我必须在同一个图表上显示多行),希望它对你有帮助。

我的数据表格式如下:

Tours   dtMonthno   dtMonth               dtYear
115                1    Jan                 2012
102                2    Feb                 2012
105                3    Mar                 2012
78                 4    Apr                 2012

我的代码如下,其中y轴是Tours,x轴是dtMonthno(实际月份数):

           DataTable dt = GetGroupChartData(Convert.ToDateTime(txtStartDate.Text), Convert.ToDateTime(txtEndDate.Text + " 23:59"));

            ChartSeries chartSeries = new ChartSeries();
            radGroups.Clear();
            chartSeries.DataYColumn = "Tours";
            radGroups.ChartTitle.TextBlock.Text = "Groups";
            chartSeries.Name = "Tours";

            radGroups.PlotArea.XAxis.LayoutMode = Telerik.Charting.Styles.ChartAxisLayoutMode.Inside;
            chartSeries.Appearance.LineSeriesAppearance.Color = System.Drawing.Color.Blue; 

            //set y axis color
            radGroups.PlotArea.YAxis.AxisLabel.TextBlock.Appearance.TextProperties.Color = System.Drawing.Color.Red;
            radGroups.PlotArea.YAxis.Appearance.Width = 3;
            radGroups.PlotArea.YAxis.Appearance.Color = System.Drawing.Color.Red; 
            chartSeries.Type = ChartSeriesType.Line;

            radGroups.PlotArea.XAxis.DataLabelsColumn = "dtMonth";
            radGroups.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Months";

            //set x axis color
            radGroups.PlotArea.XAxis.AxisLabel.TextBlock.Appearance.TextProperties.Color = System.Drawing.Color.Red; 
            radGroups.PlotArea.XAxis.Appearance.Width = 3;
            radGroups.PlotArea.XAxis.Appearance.Color = System.Drawing.Color.Red;
            radGroups.AddChartSeries(chartSeries);

            // visually enhance the data points
            chartSeries.Appearance.PointMark.Dimensions.Width = 5;
            chartSeries.Appearance.PointMark.Dimensions.Height = 5;
            chartSeries.Appearance.PointMark.FillStyle.MainColor = System.Drawing.Color.Black;
            chartSeries.Appearance.PointMark.Visible = true;

            radGroups.DataSource = dt;
            radGroups.DataBind();