Xamarin自定义渲染器更新值

时间:2018-07-11 13:08:53

标签: c# xamarin

我在Xamarin中已自定义渲染器,我想知道如何动态更新其值。

这是我在主要班级的控件:

public class MainControl : View
{
    public double A
    {
        get;
        set;
    }
}

这是我在Android中定义的自定义渲染器:

[assembly: Xamarin.Forms.ExportRenderer(typeof(MainApplication.MainControl), typeof(MainApplication.Droid.CustomRenderer))]
namespace MainApplication.Droid
{    
  public class CustomRenderer : ViewRenderer<MainControl, 
  MainApplication.Droid.ControlAndroid>
  {
    private ControlAndroid control;

    public CustomRenderer(Context context) : base(context)
    {

    }

    protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        base.OnElementPropertyChanged(sender, e);
    }

    protected override void OnElementChanged(ElementChangedEventArgs<MainControl> e)
    {
        base.OnElementChanged(e);

        if (Control == null)
        {
            control = new ControlAndroid(Context);
            SetNativeControl(control);
        }  
    }
}

}

OnElementChanged方法仅在创建对象时更新。不触发OnElementPropertyChanged。 我希望从主类更改属性A的值时应触发一些事情。

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。我发现需要一个可绑定的属性(连接到常规属性“ A”)才能调用OnElementPropertyChanged。