我正在使用Xamarin表单创建一个应用,其中HomePage
在主ListView
内部有一个StackLayout
。在我的列表中启用了分组,它在我的XAML中声明如下:
<ListView x:Name="listsListView" IsGroupingEnabled="True" GroupDisplayBinding="{Binding groupName}"
HasUnevenRows="True" GroupShortNameBinding="{Binding ShortName}">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding groupName}"/>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding itemName}"/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
在我后面的代码中,我设置了ListView
的内容:
//ListGroup extends List<Item> and gives the name for the group header
group1 = new ListGroup("Group 1");
group2 = new ListGroup("Group 2");
//I then add a few items to my ListGroups
groupedLists = new List<ListGroup>();
groupedLists.Add(childListGroup);
groupedLists.Add(listsListGroup);
listsListView.ItemsSource = groupedLists;
以下是我ListGroup
的实现:
public class ListGroup : List<Item>
{
public string groupName { get; set; }
public string ShortName { get; set; }
public ListGroup(string Name)
{
this.groupName = Name;
ShortName = "";
}
}
我完成了代码调试,在设置ItemSource
的{{1}}时,错误发生在最后一行。奇怪的是,一切都在Android中完美运行。但是,在iOS中,我得到:“ *因未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:'* - [NSPlaceholderString initWithUTF8String:]:NULL cString'”
有谁知道为什么我在iOS上收到此错误?我已经做了一段时间的Android,但我对iOS很新。
ListView
答案 0 :(得分:3)
我不确定原因,但是当我从XAML中移除GroupShortNameBinding="{Binding ShortName}"
行时,它现在可以正常工作了。我想我一直在关注一个教程,并在事故中将其留在我的代码中。