使用pubnub获取在线聊天应用程序的人员列表

时间:2017-08-31 04:39:08

标签: listview xamarin.forms pubnub

我使用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来完成它?

0 个答案:

没有答案