Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 定义自定义数据模板并将其分配给ListView ItemTemplate_C#_Xamarin - Fatal编程技术网

C# 定义自定义数据模板并将其分配给ListView ItemTemplate

C# 定义自定义数据模板并将其分配给ListView ItemTemplate,c#,xamarin,C#,Xamarin,我试图进入Xamarin的开发,并遵循微软的视频教程 目前,我想用一些基本标签填充我的ListView。首先,下面的代码对我来说很好。我创建了一个自定义ViewCell,并将其作为ItemTemplate分配给ListView 我更喜欢像在视频教程中那样创建自定义数据模板。我在Github上找到了代码 因此,我不想做ItemTemplate=new DataTemplate=>new MasterPageItemViewCell,而是想做ItemTemplate=new MasterPageIt

我试图进入Xamarin的开发,并遵循微软的视频教程

目前,我想用一些基本标签填充我的ListView。首先,下面的代码对我来说很好。我创建了一个自定义ViewCell,并将其作为ItemTemplate分配给ListView

我更喜欢像在视频教程中那样创建自定义数据模板。我在Github上找到了代码

因此,我不想做ItemTemplate=new DataTemplate=>new MasterPageItemViewCell,而是想做ItemTemplate=new MasterPageItemTemplate

这导致了课堂上

internal class MasterPageItemTemplate : DataTemplate
{
    public MasterPageItemTemplate() : base(LoadTemplate)
    {
    }

    private static Label LoadTemplate()
    {
        Label titleLabel = new Label();
        titleLabel.SetBinding(Label.TextProperty, nameof(MasterPageItem.Title));
        return titleLabel;
    }
}
因此,我从Github获取了代码,并对其进行了一些修改。当我运行代码时,标签内容为空,当我单击它时,应用程序崩溃

如何修复MasterPageItemTemplate

更新

我发现了另一个使用视图单元格的示例

所以我想我现在应该遵循这一点并使用这段代码

ItemTemplate = new DataTemplate(typeof(MasterPageItemViewCell)),
ListView中的数据项称为单元格。每个单元格对应一行数据。有内置单元格可供选择,也可以定义自己的自定义单元格。内置单元格和自定义单元格都可以在XAML或代码中使用/定义。内联DataTemplate的子级必须是Cell类型,或派生自Cell类型。在第一个链接示例中,ListView.ItemTemplate属性设置为从定义单元格外观的自定义类型创建的DataTemplate。自定义类型派生自ViewCell类型,但在代码中,自定义DataTemplate返回一个标签,它将不起作用

你可以参考

在第二个链接的示例中,它使用CollectionView。您可以将标记嵌套在DataTemplate标记中以创建视图


注意:使用CollectionView时,切勿将DataTemplate对象的根元素设置为ViewCell。这将导致引发异常,因为CollectionView没有单元格的概念。

LoadTemplate方法返回一个标签,但调用方对此不做任何处理@Jason Thank,但Github示例也会这样做,不是吗?我想当把LoadTemplate函数传递给基构造函数时,它会被调用和处理,这对你有帮助吗?
ItemTemplate = new DataTemplate(typeof(MasterPageItemViewCell)),