iOS自定义渲染器中未触发OnElementPropertyChanged。
我创建了一个类库。在我的Customer Renderer类中,我重写了一个OnElementPropertyChanged,每当我的View属性发生变化时都应该调用它。
XamarinForms:
public class CustomControl : View
{
public int PageNumber
{
get { return (int)GetValue(PageNumberProperty); }
set { SetValue(PageNumberProperty, value); }
}
public static readonly BindableProperty PageNumberProperty =
BindableProperty.Create<CustomControl, int>(p => p.PageNumber, 0, BindingMode.Default, null, null);
}
CustomRenderer类iOS:
[assembly: ExportRenderer(typeof(CustomControl), typeof(CustomRenderer))]
namespace XForms.iOS
{
internal class CustomRenderer : ViewRenderer<CustomControl, UIScrollView>
{
protected override void OnElementChanged(ElementChangedEventArgs<CustomControl> e)
{
base.OnElementChanged(e);
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
}
}
}
谁能说出我做错了什么?
答案 0 :(得分:1)
请通过在其中添加断点来仔细检查它是否真的使用了自定义渲染器。
接下来确保在创建UI元素后更改正确的(PageNumber
)。在创建过程中,不会发送属性更改通知。 Xamarin forums中描述了类似的情况。