Я использую LiveCharts для отображения диаграммы с уровнями запасов.Имена единиц и уровни запасов хранятся в базе данных доступа, и эти значения извлекаются и помещаются в списки.
Единственное, что действительно должно измениться, - это стоимость акций, поэтому я хотел отслеживать изменения запасови обновлять базу данных автоматически, давая несколько живых данных.
Я хочу, чтобы график автоматически обновлялся при изменении значения (запаса) в базе данных.Я не хочу обновлять всю таблицу, только то значение, которое изменилось, чтобы анимации отображались на отдельных барах при их изменении.
У меня есть следующий код для загрузки значений моей базы данных в базу данных:
string[] units = new string[30];
List<string> subs = new List<string>();
List<string> line = new List<string>();
List<double> min = new List<double>();
List<double> max = new List<double>();
List<ObservableValue> stock = new List<ObservableValue>();
bool initial = true;
private void LoadData()
{
string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\subDB.mdb";
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
string strSQL = "SELECT * FROM Units";
OleDbCommand command = new OleDbCommand(strSQL, conn);
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
if (initial)
{
subs.Add(reader["Sub"].ToString());
line.Add(reader["Line"].ToString());
min.Add(Convert.ToDouble(reader["Minimum"]));
max.Add(Convert.ToDouble(reader["Maximum"]));
}
stock.Add(reader["Stock"]);
}
}
initial = false;
}
}
Настройка диаграммы:
public void chartSetup()
{
cartesianChart1.Series = new SeriesCollection
{
new ColumnSeries
{
Title = "Total",
Fill = System.Windows.Media.Brushes.Crimson,
Values = new ChartValues<ObservableValue>(stock)
}
};
cartesianChart1.AxisX.Add(new Axis
{
Title = "Unit",
FontSize = 15,
Separator = new Separator
{
Step = 1,
IsEnabled = false //disable it to make it invisible.
},
LabelsRotation = 45,
Labels = new ChartValues<string>(subs)
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Total",
FontSize = 15,
ShowLabels = true,
LabelFormatter = value => value.ToString("N")
});
}
Моя проблема в том, что я не могу реализовать ObservableValue для акций.Я получаю сообщение: «Невозможно преобразовать объект в LiveCharts.Defaults.ObservableValue