LvCharts.Wpf-如何更新标签值(重新绘制标签)



试图获得一个名为Live Charts的挂起框架。我正在从MS SQL数据库中读取我的值和标签。第一次读取值时,所有内容都显示出来。我添加了一个新事件,当我从列表中选择另一个项目时,它会更新查询并带来其他值。

问题是,当我带来其他价值时,我的标签不会更新。现在我进行了调试,变量包含了预期的所有内容,但Label值不会更新。也许有一些命令可以强制更新图表,这样我就可以重新绘制标签了?

标签绑定到可变

<lvc:Axis x:Name="axisX"
FontFamily="Arial" 
Foreground="Black" 
FontSize="10" 
MinValue="0" 
MaxValue="9" 
LabelsRotation="25" 
Title="" 
Labels="{Binding Labels}">

我更新所有值并推送至图表

public void ChartDraw()
{
Labels = new[] { "" };
Labels = Str.ToArray(); //Labels get values from MS SQL, values are correct.
DataContext = this;
YFormatter = value => value + " %";
foreach (string sqlread in Sql_Koncentracija)
{
SeriesCollection[0].Values.Add(Convert.ToDouble(sqlread)); // this adds values to //chart and it updates automatically, but labels dont update.
}
}

在加载或类构造函数中放入DataContext绑定值:

...
public YourClass() { 
InitializeComponent();
DataContext = this; 
} 

或者,如果您在加载后需要init数据上下文,请在加载控件/表单后设置上下文:

public YourClass() { 
InitializeComponent();
this.Loaded += (s, e) => {
this.DataContext = this; ;
};
} 

对于那些展望未来的人来说,以下是我解决问题的方法。

DataContext = Labels;
DataContext = this;

把这两行加起来。如果我只添加了DataContext=labels;查特根本画不出来。

DataContext = Labels;
DataContext = this;

以上内容以c#形式提供给我。THX!

最新更新