Windows Phone模拟器功能正常,调试或部署到设备不正常



我正在开发一个非常简单的应用程序,解析XML提要,做一些格式化,然后在TextBlock中显示它。我在页面底部添加了一个超链接(称为"More..")(理想情况下,这将在XML被解析后添加到TextBlock的末尾),通过将XML提要的URL更改为下一页来添加更多内容。

我遇到的问题是一个奇怪的程序工作完美时,在Windows Phone 7模拟器,但当我将其部署到设备或调试设备,它适用于"More…"按钮的第一次点击,但那些在第一次点击似乎只是添加空白空间到应用程序时,部署或调试设备。

我使用的是三星Focus (NoDo),最初认为这可能与我可能没有使用最新的开发工具有关。我已经确保我正在运行最新版本的Visual Studio,但仍然遇到这个问题。


这里是我的一些代码片段,以帮助。

我在这里声明了clickCount变量:

public partial class MainPage : PhoneApplicationPage
     //set clickCount to 2 for second page  
     int clickCount = 2;
下面是我用来解析XML文件的代码片段:
    void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            ListBoxItem areaItem = null;
            StringReader stream = new StringReader(e.Result);
            XmlReader reader = XmlReader.Create(stream);
            string areaName = String.Empty;
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    if (reader.Name == "example")
                    {
                        areaName = reader.ReadElementContentAsString();
                        areaItem = new ListBoxItem();
                        areaItem.Content = areaName;
                        textBlock1.Inlines.Add(areaName);
                        textBlock1.Inlines.Add(new LineBreak());
                    }
                }
            }
        }
    }

和单击hyperLink按钮时的代码:

    private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)
    {
        int stringNum = clickCount;
        //URL is being incremented each time hyperlink is clicked
        string baseURL = "http://startofURL" + stringNum + ".xml";
        Uri url = new Uri(baseURL, UriKind.Absolute);
        WebClient client = new WebClient();
        client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
        client.DownloadStringAsync(url);
        //increment page number
        clickCount = clickCount + 1;
    }

感觉这里还有一些调试工作要做。

你能测试一下到底哪里出错了吗?

  • 是点击不工作的后续尝试?
  • 是HTTP加载失败吗?
  • 是添加内联文本失败吗?

看着它,我怀疑这是最后一件事。你能检查你的TextBlock是期待多行文本吗?此外,考虑到你所写的(你似乎并没有真正利用内联的代码片段,我已经看到),它可能更容易追加添加新的内容到一个ListBox或StackPanel,而不是到TextBlock的内部- ListBox的特别有一些好处,在虚拟化其内容的显示方面。

相关内容

  • 没有找到相关文章

最新更新