Graphique de liaison de données pour DataTable - Graphique Pas de mise à Jour
Je suis d'essayer de databind un Chart
à un DataTable
. Je voudrais le graphique pour afficher de nouvelles lignes comme ils sont ajoutés, mais le tableau n'est pas mise à jour lorsque de nouvelles lignes sont ajoutées à la table. J'ai vérifié que les deux table
et tableDataSource
contenir les nouvelles lignes, mais chart.Series["TestTable"].Points.Count
ne change jamais de 5
.
Exemple de code, basé sur la question Ne peut pas se lier datatable de Contrôle Graphique, est illustré ci-dessous. Je voudrais soit aimerais savoir si il y a une erreur ou d'une omission avec le code ci-dessous, ou une autre, meilleure approche qui permet d'atteindre le même objectif. Je sais comment ajouter manuellement des points à un Series
, mais je voudrais voir comment faire cela à l'aide de la liaison de données.
Random r = new Random();
Timer timer = new Timer();
DataTable table = new DataTable("TestTable");
DateTime date = new DateTime(2013, 1, 1);
IList tableDataSource = null;
void timer_Tick(object sender, EventArgs e)
{
table.Rows.Add(date, r.NextDouble());
date = date.AddDays(1);
chart.Update();
}
void MainForm_Load(object sender, EventArgs e)
{
table.Columns.Add("Date", typeof(DateTime));
table.Columns.Add("Percent", typeof(double));
for (int i = 0; i < 5; i++)
{
table.Rows.Add(date, r.NextDouble());
date = date.AddDays(1);
}
tableDataSource = (table as IListSource).GetList();
chart.DataBindTable(tableDataSource, "Date");
timer.Interval = 500;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
OriginalL'auteur Brett Wolfington | 2013-09-11
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser la table comme source de données à la place:
puis dans l'événement tick, appelez DataBind de nouveau au lieu de la mise à Jour:
OriginalL'auteur LarsTech