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# 中使用以上内容。谢谢!
试图挂起名为 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# 中使用以上内容。谢谢!