Эмулятор Windows Phone работает должным образом, отладка или развертывание на устройстве не выполняется - PullRequest
0 голосов
/ 15 апреля 2011

Я занимаюсь разработкой очень простого приложения, которое анализирует фид XML, выполняет некоторое форматирование и затем отображает его в TextBlock.Я добавил гиперссылку (называемую «More ..») внизу страницы (в идеале это было бы добавлено в конец TextBlock после анализа XML), чтобы добавить больше контента путем изменения URL-адреса канала XML.на следующую страницу.

Проблема, с которой я сталкиваюсь, является странной, так как программа отлично работает в эмуляторе Windows Phone 7, но когда я ее развертываю на устройстве или отлаживаю на устройстве, она работаетдля первого нажатия кнопки «Еще ...», но те, которые после первого щелчка, похоже, просто добавляют пустое пространство в приложение при развертывании или отладке с устройства.

Я использую SamsungFocus (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());

                    }
                }
            }

        }
    }

и код нажатия кнопки гиперссылки:

    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;

    }

1 Ответ

0 голосов
/ 15 апреля 2011

Такое ощущение, что здесь нужно сделать немного больше отладки.

Можете ли вы проверить, где именно это идет не так?

  • это щелчок, который не работает при последующих попытках?
  • Это ошибка загрузки HTTP?
  • это добавление встроенного текста, который терпит неудачу?

Глядя на это, я подозреваю, что это последнее. Можете ли вы проверить, что ваш TextBlock ожидает многострочный текст? Кроме того, учитывая то, что вы написали (где вы, кажется, не используете Inline из фрагмента кода, который я видел), может быть проще добавить новое содержимое в ListBox или StackPanel чем внутри TextBlock - ListBox особенно полезен с точки зрения виртуализации отображения их контента.

...