首页 > 解决方案 > 如何创建 Xamarin.Forms 自定义渲染器,其中渲染器基类使用泛型?

问题描述

我有一个基类,如下所示

public class DialogSelectionItem<Tobject> : ViewCell

现在我想给它附加一个自定义渲染器:

[assembly: ExportRenderer(typeof(SomeApp.CustomRenderers.DialogSelectionItem<Tobject>), typeof(SomeApp.iOS.CustomRenderers.DialogSelectionItemRenderer))]
namespace SomeApp.iOS.CustomRenderers
{
    public class DialogSelectionItemRenderer : ViewCellRenderer
    {
        // some customizations
    }
}

问题是

找不到类型或命名空间名称“Tobject”(您是否缺少 using 指令或程序集引用?)

我可以object改用,但是永远不会调用自定义渲染器。

是否可以选择获得正确的类型或使用泛型?我应该如何定义ExportRenderer

标签: c#genericsxamarin.formscustom-renderer

解决方案


好的,解决方案发布在这里

基类:

public class DialogSelectionItem : ViewCell
{
    // nothing
}

public class DialogSelectionItem<Tobject> : DialogSelectionItem
{
    // do something
}

查看渲染器:

[assembly: ExportRenderer(typeof(SomeApp.CustomRenderers.DialogSelectionItem), typeof(SomeApp.iOS.CustomRenderers.DialogSelectionItemRenderer))]
namespace SomeApp.iOS.CustomRenderers
{
    public class DialogSelectionItemRenderer : ViewCellRenderer
    {
        // some customizations
    }
}

推荐阅读