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

LvCharts.Wpf - How to update label values (redraw labels)

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

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

标签绑定到一个变量

<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 绑定值放入加载或 class 构造函数中:

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

或者如果您在加载后需要初始化数据上下文,请在 control/form 加载后设置您的上下文:

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

对于展望未来的人们,我是这样解决的。

DataContext = Labels;
DataContext = this;

添加这两行。如果我只添加 DataContext = labels;图表甚至不会绘制。

    DataContext = Labels;
    DataContext = this;
        

我可以在 c# 中使用以上内容。谢谢!