火车时刻表源代码

1234

这个应用的皮肤跟上一个手机归属地查询是同一皮肤。

手机归属地查询的博文地址:http://www.cnblogs.com/wildfeng/archive/2012/03/21/2409174.html

这里我用的是Panorama全景视图做的UI。

其实我一开始是将很多查询类的小应用集中在一个应用里面的,就像这样

tt不过后来打算分开做的,至于为什么,你懂的,5送一哦。可惜好事总是轮不上咱。通过再多也没用。

下载地址:

http://115.com/file/dp7nntwg#
PracticalSearch.xap

联系QQ:29992379

回到正题,这个应用用的是webxml的服务。

http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx

可以通过出发站和目的站来查询列车的车次。也可以通过车次查询列车的起始站和终点站。

之类应用都很简单,代码量也少,我在UI上花了不少功夫。效果的代码就不写了,只写功能代码吧。

 

通过起始站和终点站查询

private void SearchByStationName_Click(object sender, RoutedEventArgs e)

        {

            if (CheckStartStation() && CheckArriveStation())

            {

                l.Show(this, "查找中......");

                client.getStationAndTimeByStationNameAsync(StartStation.Text, ArriveStation.Text, "");

                client.getStationAndTimeByStationNameCompleted += new EventHandler<TrainService.getStationAndTimeByStationNameCompletedEventArgs>(client_getStationAndTimeByStationNameCompleted);

            }

        }

 

void client_getStationAndTimeByStationNameCompleted(object sender, TrainService.getStationAndTimeByStationNameCompletedEventArgs e)

        {

            if (e.Error==null)

            {

                var re=e.Result.Nodes[0];

                var TimeTable = from zip in re.Descendants("TimeTable")

                              select new TrainInfo

                              {

                                  TrainCode = zip.Element("TrainCode").Value,

                                  FirstStation = zip.Element("FirstStation").Value,

                                  LastStation = zip.Element("LastStation").Value,

                                  StartStation = zip.Element("StartStation").Value,

                                  StartTime = zip.Element("StartTime").Value,

                                  ArriveStation = zip.Element("ArriveStation").Value,

                                  ArriveTime = zip.Element("ArriveTime").Value

                              };

                if (TimeTable.First().FirstStation=="数据没有被发现")

                {

                    MessageBox.Show("数据没有被发现"); l.Hide(this, "");

                    return;

                }

                List<TrainInfo> trainlist = new List<TrainInfo>();

                foreach (var item in TimeTable)

                {

                    trainlist.Add(item);

                }

                ListBoxTrainList.ItemsSource = trainlist;

                l.Hide(this, "");

            }

        }

 

通过车次号查询

private void SearchByTrainCode_Click(object sender, RoutedEventArgs e)

        {

            if (CheckTrainCode())

            {

                l.Show(this, "查找中......");

                client.getStationAndTimeByTrainCodeAsync(TrainCode.Text, "");

                client.getStationAndTimeByTrainCodeCompleted += new EventHandler<TrainService.getStationAndTimeByTrainCodeCompletedEventArgs>(client_getStationAndTimeByTrainCodeCompleted);

            }

        }



        void client_getStationAndTimeByTrainCodeCompleted(object sender, TrainService.getStationAndTimeByTrainCodeCompletedEventArgs e)

        {

            if (e.Error==null)

            {

                string[] strinfo = e.Result;

                if (strinfo[1] != "数据没有被发现")

                {

                    TextBlockTrainCode.Text = "车次:" + strinfo[0];

                    TextBlockTrainLiu.Text = strinfo[2]+"("+strinfo[4]+")-->"+strinfo[3]+"("+strinfo[6]+")";

                    l.Hide(this, "查找中......");

                }

                else

                {

                    MessageBox.Show("数据没有被发现");

                }

            }

        }

你可能感兴趣的:(源代码)