2016-08-22 2 views
2

OnElementPropertyChanged не запускается в пользовательском рендерере iOS.OnElementPropertyChanged не запускается в пользовательском рендерере iOS

Я создал библиотеку классов. В классе Customer Renderer я переопределяю OnElementPropertyChanged, и это нужно вызывать всякий раз, когда изменяется свойство Property 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

Вы добавляете этот CustomControl в свой XAML? используя локальное пространство имен. – PrafulD

ответ

0

Просьба дважды проверить, что он действительно использует пользовательский рендерер, поставив в него контрольную точку.

Далее убедитесь, что вы правильно изменили (PageNumber) после Создание пользовательского интерфейса. Во время процесса создания уведомления об изменении свойств не будут отправляться. Аналогичный случай описан в Xamarin forums.

Смежные вопросы