美文网首页
Binding ChartValue 界面不能及时更新

Binding ChartValue 界面不能及时更新

作者: bettyxue | 来源:发表于2019-08-05 17:08 被阅读0次

    采用MVVM的模式,xaml的代码

    <lvc:LineSeries Values="{Binding Path1Flowrate}" LineSmoothness="0" StrokeThickness="0.7" ScalesYAt="0" Stroke="Blue" Fill="Transparent" PointGeometrySize="0.1"/>

    .cs文件

    private readonly ChartValues<float> path1Flowrate = new ChartValues<float>();

    public ChartValues<float> Path1Flowrate

            {

                get

                {

                    return path1Flowrate;

                }

            }

    在livechart的源代码中ChartValues的定义

    public class ChartValues<T> : NoisyCollection<T>, IChartValues, INoisyCollection, IList, ICollection, IEnumerable, INotifyPropertyChanged, INotifyCollectionChanged

    因为已经实现了相应的Changed接口,所以理论上说在Path1Flowrate中添加或者删除数据的时候,UI会相应的变化。但是在.cs文件中

    调用path1Flowrate.Add(data.FlowRate)时UI经常不能及时更新,必须要用((INoisyCollection)path1Flowrate).Add(data.FlowRate);才可以。从源代码上看如果直接调用.Add方法,那么是调用了IList的Add方法所以没有通知UI刷新。用((INoisyCollection)path1Flowrate).Add(data.FlowRate);调用通知UI的Add方法。

    相关文章

      网友评论

          本文标题:Binding ChartValue 界面不能及时更新

          本文链接:https://www.haomeiwen.com/subject/rnomdctx.html