我使用wpf和pubnub完成了一个聊天应用程序,我只想用xamarin和wpf实现它。 为了获得wpf在线的人员列表,我刚刚使用了在线方法,这里是代码片段
private void PresenceReceived(object sender, PresenceEventArgs e)
{
if (e.Event == "join")
{
Sample.HandleInvokeRequired(tb => tb.Items.Add(new ListBoxItem { Content = e.Uuid }));
if (ApplicationContext.ListOfUsers != null && ApplicationContext.ListOfUsers.Count > 0)
{
var user = ApplicationContext.ListOfUsers.FirstOrDefault(x => x.Equals(e.Uuid));
if (user == null)
{
ApplicationContext.ListOfUsers.Add(e.Uuid);
}
}
else
{
_hereNowUuids.Add(e.Uuid);
ApplicationContext.ListOfUsers = _hereNowUuids;
}
}
else
{
if (ApplicationContext.ListOfUsers != null && ApplicationContext.ListOfUsers.Count > 0)
{
ApplicationContext.ListOfUsers.Remove(ApplicationContext.ListOfUsers.FirstOrDefault(x => x.Equals(e.Uuid)));
Sample.HandleInvokeRequired(x => x.Items.Clear());
foreach (var users in ApplicationContext.ListOfUsers)
{
Sample.HandleInvokeRequired(tb => tb.Items.Add(new ListBoxItem { Content = users }));
}
}
}
}
以同样的方式,我试图用xamarin形式 使用listview代替wpf中的列表框,我收到错误,xamarin表单中的代码是:
private void PresenceReceived(object sender, PresenceEventArgs e)
{
if (e.Event == "join")
{
LoginUserList.HandleInvokeRequired(x => x.ItemsSource.ToString().Add(new ListView(Content = e.Uuid)));
if (ApplicationContext.ListOfUsers != null && ApplicationContext.ListOfUsers.Count > 0)
{
var user = ApplicationContext.ListOfUsers.FirstOrDefault(x => x.Equals(e.Uuid));
if (user == null)
{
ApplicationContext.ListOfUsers.Add(e.Uuid);
}
}
else
{
_hereNowUuids.Add(e.Uuid);
ApplicationContext.ListOfUsers = _hereNowUuids;
}
}
else
{
if (ApplicationContext.ListOfUsers != null && ApplicationContext.ListOfUsers.Count > 0)
{
ApplicationContext.ListOfUsers.Remove(ApplicationContext.ListOfUsers.FirstOrDefault(x => x.Equals(e.Uuid)));
LoginUserList.HandleInvokeRequired(x => x.Items.Clear());
foreach (var users in ApplicationContext.ListOfUsers)
{
LoginUserList.HandleInvokeRequired(x => x.Items.Add(new ListBoxItem { Content = users }));
}
}
}
}
我的错误是: 1.Severity代码描述项目文件行抑制状态 错误CS0029无法隐式转换类型'字符串'到' Xamarin.Forms.View' SnovasysMobileChat E:\ Snovahub \ SourceCode \ Chat \ SnovasysChat \ SnovasysMobileChat \ SnovasysMobileChat \ Views \ Chat \ ChatList.xaml.cs 37 Active
2.Severity代码描述项目文件行抑制状态 错误CS1061' ListView'不包含'项目'的定义没有扩展方法'项目'接受类型' ListView'的第一个参数可以找到(你错过了使用指令或程序集引用?)SnovasysMobileChat E:\ Snovahub \ SourceCode \ Chat \ SnovasysChat \ SnovasysMobileChat \ SnovasysMobileChat \ Views \ Chat \ ChatList.xaml.cs 58 Active
3.Severity代码描述项目文件行抑制状态 错误CS1061' ListView'不包含'项目'的定义没有扩展方法'项目'接受类型' ListView'的第一个参数可以找到(你是否缺少using指令或程序集引用?)SnovasysMobileChat E:\ Snovahub \ SourceCode \ Chat \ SnovasysChat \ SnovasysMobileChat \ SnovasysMobileChat \ Views \ Chat \ ChatList.xaml.cs 61 Active 4.Severity代码描述项目文件行抑制状态 错误CS0246类型或命名空间名称' ListBoxItem'找不到(你是否错过了使用指令或程序集引用?)SnovasysMobileChat E:\ Snovahub \ SourceCode \ Chat \ SnovasysChat \ SnovasysMobileChat \ SnovasysMobileChat \ Views \ Chat \ ChatList.xaml.cs 61 Active
是否可以使用xamarin表单中的listview来完成它?