Я пытаюсь показать декартову диаграмму, используя данные из БД.Но я застрял при отображении данных на графике.
Я проверил, правильно ли введены данные в серию коллекций.Поэтому я думаю, что при привязке данных произошла ошибка.
Это мой код в файле xaml.
<wpf:CartesianChart Name="mainChart" Grid.Row="1" Grid.ColumnSpan="8" Height="250" Series="{Binding mainData}">
<wpf:CartesianChart.AxisX>
<wpf:Axis Title="Date" Labels="{Binding mainDataLabel}"></wpf:Axis>
</wpf:CartesianChart.AxisX>
</wpf:CartesianChart>
А ниже приведена часть моего кода, связанная с диаграммой.
public partial class MainWindow : Window
{
private SeriesCollection mainData;
private List<string> mainDataLabel;
public void GetDataAsCondition(SearchCondition condition)
{
// Here is some code to get data from DB
for (int idx = 0; idx < mainDataTable.Columns.Count; idx++)
{
if (idx > 0)
{
LineSeries tmpLineSeries = new LineSeries();
List<int> tmpDataList = new List<int>();
tmpLineSeries.Title = mainDataTable.Columns[idx].ColumnName;
for (int rowCnt = 0; rowCnt < mainDataTable.Rows.Count; rowCnt++)
{
tmpDataList.Add(Int32.Parse(mainDataTable.Rows[rowCnt][idx].ToString()));
}
tmpLineSeries.Values = new ChartValues<int>(tmpDataList);
mainData.Add(tmpLineSeries);
}
else if (idx == 0)
{
for (int rowCnt = 0; rowCnt < mainDataTable.Rows.Count; rowCnt++)
{
mainDataLabel.Add(mainDataTable.Rows[rowCnt][idx].ToString());
}
}
}
}
}
Я проверил свойство привязки 'mainData', объявленное в классе mainwindow.Поэтому я думаю, что привязка должна работать.Где я допустил ошибку в этом коде?Пожалуйста, помогите.
Спасибо.