private void llsBuses_Tap(object sender, System.Windows.Input.GestureEventArgs e) { var listSelector = sender as LongListSelector; if (listSelector.SelectedItem == null) return; m_selectedBus = listSelector.SelectedItem as Bus; Debug.WriteLine(m_selectedBus.Segments.First().LineName+"\t"+m_selectedBus.Segments.Last().LineName); NavigationService.Navigate(new Uri("/RouteDetailPage.xaml?start=" + m_strStart + "&end=" + m_strEnd, UriKind.Relative)); }
protected override void OnNavigatedTo(NavigationEventArgs e) { object temp_bus; m_strStart = NavigationContext.QueryString["start"]; m_strEnd = NavigationContext.QueryString["end"]; tbkStart.Text = m_strStart; tbkEnd.Text = m_strEnd; if (m_myService.State.ContainsKey("selectedBus")) { if (m_myService.State.TryGetValue("selectedBus", out temp_bus)) { m_bus = (Bus)temp_bus; llsRouteDetail.ItemsSource = m_bus.Segments; } } base.OnNavigatedTo(e); }
public static ObservableCollection<Bus> parseXMLForBusRoutes(string xmlFile) { ObservableCollection<Bus> buses = new ObservableCollection<Bus>(); XDocument xdoc = XDocument.Parse(xmlFile); var temp_buses = from temp_bus in xdoc.Descendants("bus") select new { dist = temp_bus.Element("dist").Value, time = temp_bus.Element("time").Value, last_foot_dist = temp_bus.Element("last_foot_dist").Value, foot_dist = temp_bus.Element("foot_dist").Value, segments = from segment in temp_bus.Descendants("segment") select new { start_stat = segment.Element("start_stat").Value, end_stat = segment.Element("end_stat").Value, line_name = segment.Element("line_name").Value, stats = segment.Element("stats").Value, line_dist = segment.Element("line_dist").Value, foot_dist = segment.Element("foot_dist").Value }, }; foreach (var temp_bus in temp_buses) { Bus bus = new Bus(); bus.Distance = temp_bus.dist; bus.Time = temp_bus.time; bus.FootDistance = temp_bus.foot_dist; bus.LastFootDistance = temp_bus.last_foot_dist; ObservableCollection<Segment> list_segments = new ObservableCollection<Segment>(); foreach (var segment in temp_bus.segments) { Segment s = new Segment(); s.StartStat = segment.start_stat; s.EndStat = segment.end_stat; s.LineName = segment.line_name; s.Stats = segment.stats.Split(';'); s.LineDistance = segment.line_dist; s.FootDistance = segment.foot_dist; list_segments.Add(s); } bus.Segments = list_segments; buses.Add(bus); } return buses; }