2017-06-20 46 views
1

我正在创建一个由1个窗体和几个面板组成的应用程序,我在另一个面板上堆叠,因此我可以调用panel.BringToFront()来显示它。如何从另一个面板更新C#面板中的图表的数据源

我的第一个面板由其数据源来自我的数据库的图表组成。 因此,一旦我从第二个面板添加或更改了一些数据,我需要在第一个面板中更新图表。我所做的是在每次添加或更改内容时调用​​。问题是我的图表在第一个面板中没有更新。但是当我尝试更新同一面板内的表时,它的工作原理。这里是我的​​代码:

private void initializeChart() 
{    
    chart1.DataSource = database.getMonthlyProfitList(); 
    chart1.Series["Income"].XValueMember = "Bulan"; 
    chart1.Series["Income"].YValueMembers = "Pendapatan"; 
} 

所以,做你们有什么想法,为什么我可以更新视图中的同一面板上而不是其他面板上,如果可能的话该怎么办?

回答

0

添加下面的代码行中的最后一个:

private void initializeChart() 
{    
    chart1.DataSource = database.getMonthlyProfitList(); 
    chart1.Series["Income"].XValueMember = "Bulan"; 
    chart1.Series["Income"].YValueMembers = "Pendapatan"; 
    chart1.DataBind(); 
} 
+0

检查此链接@VickyS:HTTPS://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization。 charting.chart.databind(v = vs.110).aspx 谢谢你的投票。我用了很多图表。 – Abhishek

+0

感谢@Abhishek它的工作原理。你可以向我解释一下DataBind()是做什么的?我也可以在dataGridView上使用它吗? – VincentTheonardo

+0

'DataBind()'方法将图表绑定到给定的数据源。它在我发布的上述链接中给出。 'DataGridView'不提供相同的选项。你只需要设置数据源,每次工作。为什么同样的事情在图表中不起作用,因为如果在数据源上执行更多的数据操作,必须显式调用'DataBind()'方法。 – Abhishek