【问题标题】:DataBinding with SfGauge使用 SfGauge 进行数据绑定
【发布时间】:2017-10-01 11:26:42
【问题描述】:

有人知道是否可以将数据绑定到 SfGauge 吗? 如果是的话如何根据指针指针值,

NeedlePointer needlePointer = new NeedlePointer();
needlePointer.Value = 60;
needlePointer.Color = Color.Gray;
needlePointer.KnobColor = Color.FromHex("#2bbfb8");
needlePointer.Thickness = 5;
needlePointer.KnobRadius = 20;
needlePointer.LengthFactor = 0.8;
scale.Pointers.Add(needlePointer);

谢谢

这是我的更新代码,但在量规上仍然显示为零。

namespace Drip
{


    public partial class Guage : ContentPage
    {
        private const string Url = "https://thingspeak.com/channels/301726/field/1.json";
        private HttpClient _client = new HttpClient();
        private ObservableCollection<Feed> _data2;



        SfCircularGauge circular;
        NeedlePointer needlePointer;

        public Guage()
        {
          ...

            needlePointer = new NeedlePointer();

            needlePointer.Color = Color.Gray;
            needlePointer.KnobColor = Color.FromHex("#2bbfb8");
            needlePointer.Thickness = 5;
            needlePointer.KnobRadius = 20;
            needlePointer.LengthFactor = 0.8;






            scale.Pointers.Add(needlePointer);

            Content = circular;
        }


        protected override async void OnAppearing()
        {
            var content = await _client.GetStringAsync(Url);
            var data = JsonConvert.DeserializeObject<RootObject>(content);
            _data2 = new ObservableCollection<Feed>(data.Feeds);

            this.BindingContext = _data2[0];

            needlePointer.SetBinding(Pointer.ValueProperty, "Field1");




        }
    }

型号

using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Drip
{
    public class Feed : INotifyPropertyChanged

    {
        private decimal _field1 = 0;
        public decimal Field1

        {
            get
            {
                return _field1;
            }
            set
            {
                if (_field1 != value)
                {
                    _field1 = value;
                    OnPropertyChanged();
                }


            }


        } 
        public DateTime Created_at { get; set; }
        public int Entry_id { get; set; }


        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged([CallerMemberName] string propertyField1 = null)
        {
            {
                var handler = PropertyChanged;
                if (handler != null)
                {
                    PropertyChangedEventArgs propertyChangedEvent
                    = new PropertyChangedEventArgs(propertyField1);
                    handler(this, propertyChangedEvent);
                }
            }
        }
    }
}

我已将上面的代码更改为我的代码,但是量规仍然显示零值,我是否遗漏了什么或使用了错误的东西?

【问题讨论】:

    标签: c# xamarin binding syncfusion gauge


    【解决方案1】:

    假设您要绑定到 BindingContext 的属性“Value”

    needlePointer.SetBinding(NeedlePointer.ValueProperty, "Value");
    

    为了使数据绑定起作用,您需要设置一个 BindingContext

    this.BindingContext = _data2[0];
    

    【讨论】:

      【解决方案2】:

      我们从json 得到的_data2[0] 的值是0。请参考下面附上的json数据截图。

      attached 屏幕截图中,突出显示集合中第0 个索引的field1 项目值。
      所以,如果你用指针指针绑定这些值,它将只显示0 值。您能否确定您从_data2[0] 获得了什么价值?如果您得到 0,那么请从 _data[1]_data[2] 获取 field1 值。

      【讨论】:

        猜你喜欢
        • 2011-01-19
        • 2012-04-26
        • 2012-04-12
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        相关资源
        最近更新 更多