Пользовательский рендерер в Xamarin.Формы могут найти метод OnElementChanged

#xamarin #renderer #xamarin.forms

#xamarin #средство визуализации #xamarin.формы #xamarin.forms

Вопрос:

Я пытаюсь реализовать для него пользовательскую метку и средство визуализации iOS с помощью Xamarin.Формы. По какой-то причине код из примера использует метод, которого нет в базовом классе:

Один элемент изменен

введите описание изображения здесь

Есть идеи, как это исправить?

Ответ №1:

Измените тип аргумента на ElementChangedEventArgs

 using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

namespace XForms.Toolkit.iOS.Controls
{
    public class MyLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);
        }
    }
}
  

Комментарии:

1. Я изменился, но все еще имею ошибку времени компиляции @Ошибка 1 Не удалось найти имя типа или пространства имен ‘ElementChangedEventArgs’ (вам не хватает директивы using или ссылки на сборку?) C:SourcesLOCALApp2App2App2.iOSAppDelegate.cs 49 50 Приложение 2.iOS — dropbox.com/s/3tpemfyn9lwak1w/shot_140620_180208.png

2. Есть ли у вас возможность разрешить его? Вы добавили пространства имен из приведенного выше примера?

3. нет возможности разрешить, пространство имен существует: dropbox.com/s/bqeeeso7a727nyd/shot_140623_110648.png

Ответ №2:

Оказалось, что Xamarin.Forms SDK, на который ссылается шаблон проекта по умолчанию, недостаточно. Вам необходимо дополнительно установить пакет NUGET Xamarin.Формы для вашего сенсорного проекта:

введите описание изображения здесь

Ответ №3:

У меня это сработало после обновления Xamarin.Библиотека форм в диспетчере пакетов NUGET. Но вы должны использовать ElementChangedEventArgs<> в качестве типа параметра

Ответ №4:

Вы должны использовать ElementChangedEventArgs < AdMobView> в качестве параметра