代码之家  ›  专栏  ›  技术社区  ›  random

Xamarin自定义呈现程序更新值

  •  0
  • random  · 技术社区  · 6 年前

    我在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);
            }  
        }
    }
    

    }

    方法OneElementChanged仅在创建对象时更新。不会触发OneElementPropertyChanged。 我期望在从主类更改属性A的值时触发一些东西。

    1 回复  |  直到 6 年前
        1
  •  0
  •   random    6 年前

    我自己找到了答案。我发现我需要一个可绑定的属性(连接到我的常规属性“a”),以便调用OneElementPropertyChanged。