LiveChart 中的 ObservableValue 是什么
What is ObservableValue in LiveChart
我不明白ObservableValue,或者传入ObservableValue和传入原始value/type本身有什么区别?
如果我以下面的例子为例,无论是 ObservableValue 还是 double 类型,图表都会动态填充随机值并更新图表,包括动画。
那么为什么要使用 ObservableValue?有人可以举个例子吗。
Values = new ChartValues<ObservableValue>
{
new ObservableValue(r.Next(10, 400)),
};
Values = new ChartValues<double>
{
(r.Next(10, 400)),
};
如果您使用 ObservableValue
,它只是在每次 Value
属性 更改时通知图表更新(因为它实现了 INotifyPropertyChanged
接口)。
您可以找到 ObservableValue
来源 here
如果您打算在填充初始集合并显示图表后在运行时动态更新 Values
集合中的单个值,则需要使用 ObservableValue
使图表成为能够通知此更新并相应地更新自身。
当您像这样简单地替换集合中的 double
值时,不会引发任何事件:
Values[0] = 1.0;
...但是如果您像这样设置 ObservableValue
的 Value
属性,则会引发 PropertyChanged
事件:
Values[0].Value = 1.0;
图表订阅了PropertyChanged
事件来监听更新。这就是区别。
我不明白ObservableValue,或者传入ObservableValue和传入原始value/type本身有什么区别?
如果我以下面的例子为例,无论是 ObservableValue 还是 double 类型,图表都会动态填充随机值并更新图表,包括动画。
那么为什么要使用 ObservableValue?有人可以举个例子吗。
Values = new ChartValues<ObservableValue>
{
new ObservableValue(r.Next(10, 400)),
};
Values = new ChartValues<double>
{
(r.Next(10, 400)),
};
如果您使用 ObservableValue
,它只是在每次 Value
属性 更改时通知图表更新(因为它实现了 INotifyPropertyChanged
接口)。
您可以找到 ObservableValue
来源 here
如果您打算在填充初始集合并显示图表后在运行时动态更新 Values
集合中的单个值,则需要使用 ObservableValue
使图表成为能够通知此更新并相应地更新自身。
当您像这样简单地替换集合中的 double
值时,不会引发任何事件:
Values[0] = 1.0;
...但是如果您像这样设置 ObservableValue
的 Value
属性,则会引发 PropertyChanged
事件:
Values[0].Value = 1.0;
图表订阅了PropertyChanged
事件来监听更新。这就是区别。