Xamarin - Customrenderer获得2个错误

时间:2016-04-21 11:19:14

标签: c# android xamarin xamarin.forms

所以我在CustomSwitchRenderer类中遇到了这些错误,该类位于SalesKicker.Droid中。以下是错误:

  

OnElementCHanged(ElementChangedEventArgs e):找不到合适的方法来覆盖

  

Android.Widget.Switch不能用作典型参数' TElement'在genericc类型或方法ElementChangedEventArgs'没有从Widget.Switch到Forms.Element

的隐式引用转换

我很困惑,因为之前有过这样的工作,但我不知道我在这里做错了什么。这是我的班级:

public class CustomSwitchRenderer : SwitchRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Switch> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {
            Control.TextOn = "AAN";
            Control.TextOff = "UIT";

            Color colorON = Color.Green;
            Color colorOFF = Color.Red;

            Control.SetTextColor(Color.Black);

            StateListDrawable drawable = new StateListDrawable();

            drawable.AddState(new int[] 
                {
                    Android.Resource.Attribute.StateChecked
                }, new ColorDrawable(colorON));
            drawable.AddState(new int[]
                {

                }, new ColorDrawable(colorOFF));

            Control.ThumbDrawable = drawable; 
        }
    }
}

是的,我也添加了这一行:

using Switch = Android.Widget.Switch

这个当然:

[assembly:ExportRenderer(typeof(Switch), typeof(CustomSwitchRenderer))]

谁能告诉我我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要using Switch = Xamarin.Forms.Switch而不是using Switch = Android.Widget.Switch