我目前正在编写一个简单的Xamarin.Forms聊天应用程序来学习。
此应用程序有一个已绑定到ObservableCollection的ListView。通过右键,每当我向ObservableCollection添加一个对象时,它都应该显示在列表中。
我有一个异步线程,它每秒轮询服务器以获取消息,然后将该消息添加到ObservableCollection中,然后显示在ListView中。
这在Android上运行良好,但由于某些奇怪的原因似乎无法在UWP上运行。
我在控制台中遇到的异常是 ObservableCollection<MessageListItem> messageList = new ObservableCollection<MessageListItem>();
public MainPage()
{
InitializeComponent();
//Bind the ListView to the ObservableCollection
MessageListView.ItemsSource = messageList;
//Start listening to messages
var messagesTask = connection.GetMessagesAsync(messageList);
}
。
MainPage.xaml.cs中:
public async Task GetMessagesAsync(ObservableCollection<MessageListItem> collection)
{
string watermark = null;
while(true)
{
Debug.WriteLine("Reading message every 1 second");
var activitySet = await Client.Conversations.GetActivitiesAsync(MainConversation.ConversationId, watermark);
watermark = activitySet?.Watermark;
foreach(Activity activity in activitySet.Activities)
{
if (activity.From.Name == "MarsBot")
{
//Add object to binded collection
collection.Add(new MessageListItem(activity.Text, activity.From.Name));
}
}
await Task.Delay(1000);
}
}
GetMessagesAsync():
Ctrl
我在这里做错了吗?