如何将数据从 pubnub 服务器添加到 xamarin 窗体中的列表视图



我的日志文件中出现错误

[0:] 绑定:"用户消息"属性在"Saileela: 测试消息"上找不到,目标属性:"Xamarin.Forms.Label.Text">

private void MessageReceived(object sender, MessageEventArgs e)
{
_chatWindowViewModel.Usermessage = e.Message;
_chatWindowViewModel.MessagesList.Add(e.Message);
}

我的列表视图是:

<ListView x:Name="Listview" ItemsSource="{Binding MessagesList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical">
<Label Text="{Binding Usermessage}" FontSize="15"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

我的观点模型是:

namespace MobileChat.ViewModels.Chat
{
public class ChatWindowViewModel : INotifyPropertyChanged
{
private string _message;
private ObservableCollection<string> _messageslist = new ObservableCollection<string>();
public ChatWindowViewModel()
{
}
public ObservableCollection<string> MessagesList
{
get { return _messageslist;}
set{_messageslist = value;OnPropertyChanged();}
}
public string Usermessage
{
get { return _message; }
set{_message = value;OnPropertyChanged();}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}

消息列表是一个字符串列表。

在你的代码中,标签绑定路径是MessagesList.Usermessage,但是路径是无效的,因为列表中没有模型。

修改您的代码:

<Label Text="{Binding }" FontSize="15"/>