c# - Xamarin 应用程序异常:“引发了 Objective-C 异常。名称:NSInvalidArgumentException”
问题描述
我尝试构建一个简单的 Xamarin Forms 应用程序,将联系人列表分组。在这种情况下,我只有两个联系人以保持轻松。在 iOS 模拟器或我的 iPhone 6s (iOS 12) 上启动应用程序时,会出现一条错误消息:
“{Foundation.MonoTouchException:引发了 Objective-C 异常。名称:NSInvalidArgumentException 原因:*** -[NSPlaceholderString initWithUTF8String:]:NULL cString 本机堆栈跟踪:0
CoreFoundation 0x00000001068e56fb __exceptionPrepr…}”
C#
namespace Lists{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
listView.ItemsSource = new List<ContactGroup> {
new ContactGroup("P", "P")
{
new Contact { Name = "Peter Parker", Status = "Nice to meet you!" }
},
new ContactGroup("J", "J")
{
new Contact { Name = "John Smith", Status = "Hey, let's talk!" }
}
};
}
}
public class Contact
{
public string Name { get; set; }
public string Status { get; set; }
}
public class ContactGroup : List<Contact>
{
public string Title { get; set; }
public string ShortTitle { get; set; }
public ContactGroup(string title, string shortTitle)
{
Title = title;
ShortTitle = shortTitle;
}
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<ContentPage
Padding="0, 20, 0, 0"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Lists" x:Class="Lists.MainPage">
<ListView x:Name="listView"
IsGroupingEnabled="true"
GroupDisplayBinding="{Binding Title}"
GroupShortNameBinding="{Binding shortTitle}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Name}" Detail="{Binding Status}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
解决方案
在行中:
GroupShortNameBinding="{Binding shortTitle}">
您应该将绑定设置为ShortTitle 而不是shortTitle
.
这是一个带有代码的演示,您可以查看它:grouped-listView
推荐阅读
- c# - 如何统一更改按钮颜色?
- isabelle - 这个伊莎贝尔证明有什么问题?
- c - 列出双向链表项 C
- javascript - 当达到父组件的宽度时输入文本移动到下一行
- c# - 具有变量值的字典对象的通用方法并循环遍历它
- c++ - 蛇游戏——尾巴运动
- css - 使用 CSS Grid 的文章布局:如何在图像周围环绕文本(或浮动它们)?
- javascript - 我的 Wordpress 网站页面滚动不起作用
- android - 使用 React-Native-Bluetooth-Classic 构建失败
- google-cloud-platform - 制作服务器 Google Cloud 的精确副本