我在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的值时应触发一些事情。
答案 0 :(得分:0)
我自己找到了答案。我发现需要一个可绑定的属性(连接到常规属性“ A”)才能调用OnElementPropertyChanged。