2016-08-22 77 views
2

在iOS自定义渲染器中未触发OnElementPropertyChanged。OnElementPropertyChanged未在iOS自定义渲染器中触发

我创建了一个类库。在我的Customer Renderer类中,我重写了一个OnElementPropertyChanged,当我的视图的属性发生变化时应该调用它。

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

您是否将此CustomControl添加到您的XAML中?使用本地命名空间。 – PrafulD

回答

0

请仔细检查它是否真的在使用自定义渲染器。

接下来请确保在创建UI元素之后更改正确(PageNumber。在创建过程中,不会发送属性更改通知。在Xamarin forums中描述了类似的情况。

相关问题