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