【发布时间】:2019-07-11 09:47:06
【问题描述】:
我正在尝试解决使用自定义渲染器的开源 Xamarin.Forms 控件中的一个缺点。
问题是我只能在自定义渲染器运行之后在控件上设置某些属性。我只是不确定那会是什么时候。控件或页面中是否有任何生命周期事件表明所有自定义渲染器都已执行?
谢谢!
【问题讨论】:
标签: xamarin.forms custom-renderer
我正在尝试解决使用自定义渲染器的开源 Xamarin.Forms 控件中的一个缺点。
问题是我只能在自定义渲染器运行之后在控件上设置某些属性。我只是不确定那会是什么时候。控件或页面中是否有任何生命周期事件表明所有自定义渲染器都已执行?
谢谢!
【问题讨论】:
标签: xamarin.forms custom-renderer
xxxRenderer 类公开了 OnElementChanged 方法,该方法在创建 Xamarin.Forms 控件时调用以呈现相应的本机控件。此方法采用包含OldElement 和NewElement 属性的ElementChangedEventArgs 参数。这些属性表示渲染器附加到的 Xamarin.Forms 元素,以及渲染器附加到的 Xamarin.Forms 元素。
protected override void OnElementChanged (ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged (e);
if (Control != null) {
// custom renderers have executed here
}
}
对基类的 OnElementChanged 方法的调用会实例化本机控件(或视图),其中对分配给呈现器的 Control 属性的控件的引用。
【讨论】:
OnElementChanged 发送通知并在表单中订阅。