0

バージョン 7.1 をターゲット ビルドとして設定して、Windows Phone でアプリケーションを開発しています。私が抱えている問題は、ページのリストビューの 1 つが表示を拒否することです。

リストがその中のコンテンツで解析されるようにデバッグしました。また、Windows 8エミュレーターを使用すると、アプリケーションは正常に動作します。ただし、アプリケーションの他のページに他のリストビューを設定する際に使用される同じ手法は、表示されないこの 1 つのページ以外のすべてのエミュレーターで正常に機能します。

バインディングスタックパネルの色を設定して、表示されるかどうかを確認しようとしましたが、コンテンツはありません。私は本当に混乱しており、私のコードは非常に完璧です。以前に Windows Phone エミュレーターでこの問題を経験したことがある人がいるのだろうか?

private void countdownClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        HtmlDocument doc = new HtmlDocument();            
        if (e.Error != null)
        {
            //MessageBox.Show(e.Error.InnerException.Message + "\n Ensure You Have A Working Internet Connection");                
            return;
        }
        doc.LoadHtml(e.Result);
        String noCountdown = "<div><span>Sorry no buses are expected within 30 minutes of this stop.  Please try again later or go to www.tfl.gov.uk</span></div>";

        if (e.Result.Contains(noCountdown))
        {
            //No Buses Expected;
            return;
        }
        else
        {
            HtmlNode stopCountdownNode;
            try
            {
                stopCountdownNode = doc.DocumentNode.SelectSingleNode("//*[contains(@id, 'stopBoard')]").SelectSingleNode("tbody");
            }
            catch (Exception)
            {
                MessageBox.Show("Error Responce From Server");
                return;
            }

            if (stopCountdownNode != null)
            {
                HtmlNodeCollection countdownNodeList = stopCountdownNode.SelectNodes("tr");
                CountDownListBox.ItemsSource = GetCountdownList(countdownNodeList);
            } 
        }
    }

    private ObservableCollection<BusCountdown> GetCountdownList(HtmlNodeCollection countdownNodeList)
    {
        ObservableCollection<BusCountdown> countdownList = new ObservableCollection<BusCountdown>();
        foreach (HtmlNode countDown in countdownNodeList)
        {
            String busName = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resRoute')]").InnerHtml);
            String busDestination = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resDir')]").InnerHtml);
            String countDownTime = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resDue')]").InnerHtml);
            countdownList.Add(new BusCountdown(busName, busDestination, countDownTime));       
        }                                                    
        return countdownList;
    }

    public string GetRandomSlash()
    {
        Random r = new Random();
        String slash = "";
        int rand = r.Next(1, 20);
        for (int i = 0; i < rand; i++)
        {
            slash += "/";
        }
        return slash;
    }
4

2 に答える 2

1

public へのバインドに使用するクラス アクセス指定子を設定して、試してみてください。それが機能するかどうか教えてください。

例:

public class Bindingclass
{
public string Name{get;set;}
}
于 2013-03-30T10:22:46.717 に答える
0
  1. Expression Blendを使用してみてください。また、以前のソリューション ファイルを削除して、新しいソリューションを構築してください。
  2. また、すべてのページに対してビルド アクションプロパティを適切に設定します。
  3. SDK を 7.8バージョンに更新します。エミュレータには複数の選択肢があります -エミュレータ 7.1 (256 MB)、エミュレータ 7.1 (512 MB)、エミュレータ 7.8 (256 MB)、エミュレータ 7.8 (512 MB)。これらすべてのバージョンでテストし、各エミュレータ タイプで出力を確認します。

これらの少なくとも 1 つが、作業を開始するのに役立つことを願っています。我々に教えてください。

于 2013-03-30T11:18:55.917 に答える