Итак, я получал эту ошибку в Xamarin, когда пытался создать настраиваемый переключатель с функцией textOn и textOff. Я просмотрел эту тему: https://forums.xamarin.com/discussion/26694/problem-creating-custom-renderer. И все еще не могу понять это. Это также мой первый раз, создавая пользовательский элемент управления для Xamarin, так что я, возможно, сделал некоторые ошибки начинающихXamarin - Custom Renderer Нет подходящего метода для переопределения
Вот мой код для моего пользовательского элемента управления:
[assembly:ExportRenderer(typeof(CustomSwitch), typeof(CustomSwitchRenderer))]
namespace SalesKicker
{
public class CustomSwitch : Android.Widget.Switch
{
public static readonly BindableProperty TextOnProperty = BindableProperty.Create<CustomSwitch, string>(p => p.TextOn, AppResources.CustomSwitch_DefaultTextOn);
public static readonly BindableProperty TextOffProperty = BindableProperty.Create<CustomSwitch, string>(p => p.TextOff, AppResources.CustomSwitch_DefaultTextOff);
public string TxtOn
{
get { return (string)GetValue(TextOnProperty); }
set { SetValue(TextOnProperty, value); }
}
public string TxtOff
{
get { return (string)GetValue(TextOffProperty); }
set { SetValue(TextOffProperty, value); }
}
}
public class CustomSwitchRenderer : SwitchRenderer
{
//the error is being thrown here: Error CS0115: 'CustomSwitchRenderer.OnElementChanged(ElementChangedEventArgs<CustomSwitch>)': no suitable method found to override (CS0115) (SalesKicker.Droid)
protected override void OnElementChanged(ElementChangedEventArgs<SalesKicker.CustomSwitch> e)
{
base.OnElementChanged(e);
if (e.OldElement != null || this.Element == null)
{
return;
}
var customSwitch = this.Element;
var control = new Switch(Forms.Context)
{
TextOn = customSwitch.TxtOn,
TextOff = customSwitch.TxtOff
};
this.SetNativeControl(control);
}
}
}
Может кто-то пожалуйста, скажите мне, что I`m делаете неправильно здесь?
В его коде есть еще две проблемы: i) Он наследует Android.Widget.Switch в своем определении пользовательского контроля в проекте Forms. В то время как он должен был унаследовать Switch Control в Xamarin.Forms ii) Также он экспортирует рендер в проект Forms. В то время как это должно было быть в Android-проекте. Проверьте мой ответ – Sreeraj
Да, вы правы :) Я сосредоточился только на ошибке компилятора. –