代码之家  ›  专栏  ›  技术社区  ›  Ibrahim

Windows Phone 7通过上下文查询字符串将数据从列表框传递到另一页

  •  0
  • Ibrahim  · 技术社区  · 11 年前

    大家好,我是一个用C#开发的初学者。我在将数据从一个页面传递到另一个页面时遇到一些问题。在列表框中,我有通过web服务从数据库中获得的数据。

    我创建了一些编码,将选定的数据集移动到下一页,并将其输入到指定的文本块中。目前,此编码仅适用于一个数据字段“eventId”

    你能不能看看我的代码,告诉我我做错了什么,以及我如何解决这个问题。

    下面是我在保存列表框和数据集的页面中的编码:

    private void FirstListBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
    
            EventServiceReference1.Event myEvent = (EventServiceReference1.Event)FirstListBox2.SelectedItem;
            int eventId = myEvent.EventID;
            string eventList = myEvent.EventList;
            string eventDescription = myEvent.Description;
            string eventDate = myEvent.Date;
            string eventTime = myEvent.Time;
            string eventLocation = myEvent.Location;
            var url = string.Format("/EventPageTemp.xaml?eventId={0}", eventId + "&eventList={0}", eventList);
            NavigationService.Navigate(new Uri(url, UriKind.Relative));
    
        }
    

    以下是我将数据传递到的“EventPageTemp”页面的编码:

            int eventId;
            string eventIdStr;
            string eventList;
    
            if (NavigationContext.QueryString.TryGetValue
                ("eventId", out eventIdStr) && int.TryParse(eventIdStr, out eventId))
            {// load event data, and set data context
                txtEID.Text = eventIdStr;}
    
            if (NavigationContext.QueryString.ContainsKey("eventList"))
            {
                string val = NavigationContext.QueryString["eventList"];
                txtEList.Text = eventList;
            }
    

    目前,它出现了错误: -当前上下文中不存在名称“eventList” -使用未分配的本地变量“eventList”

    你能帮我弄清楚吗。非常感谢。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Chris Shao    11 年前

    问题是你的url, eventId + "&eventList={0}", eventList 将作为eventId:

    var url = string.Format("/EventPageTemp.xaml?eventId={0}", eventId + "&eventList={0}", eventList);
    

    应该是:

    var url = string.Format("/EventPageTemp.xaml?eventId={0}&eventList={1}", eventId, eventList);