Почему я продолжаю получать InvalidOperationException WP7 - PullRequest
0 голосов
/ 21 марта 2012

У меня вопрос: я получаю исключение InvalidOperationException: элемент уже является дочерним по отношению к другому элементу, добавленному в WP7.Это происходит, когда вы пытаетесь добавить UIElement более одного раза к любому элементу отображения.Это имеет смысл, потому что я добавляю несколько статических элементов в абзац в поле расширенного текста, поэтому, если бы мне пришлось снова добавить статические элементы в любой displayElement, я бы получил это исключение.Но в методе OnNavigatingFrom я очищаю весь список элементов в абзаце, поэтому их больше не должно быть в списке, и исключение не должно отображаться.Другие нестатические элементы не показывают это исключение.У кого-нибудь есть предложения?

private static Hyperlink websiteHyperLink   = new Hyperlink( );
method:
if ( NavigationContext.QueryString.TryGetValue( key, out value ) )
        {
            Bold bold = new Bold( );

            bold.Inlines.Add( UsedLanguage.cv_page_website );
            websiteHyperLink.Inlines.Add( website );
            websiteHyperLink.TargetName = website;
            websiteHyperLink.Click += new RoutedEventHandler( OpenBrowserClient );

            mParagraph.Inlines.Add( bold );
            mParagraph.Inlines.Add( websiteHyperLink );
            mParagraph.Inlines.Add( "\n" );
        }
 protected override void OnBackKeyPress ( System.ComponentModel.CancelEventArgs e )
        {
            mParagraphs.Inlines.Clear( );
            base.OnBackKeyPress ( e );
        }

1 Ответ

1 голос
/ 21 марта 2012

Не делайте этого на OnBackKeyPress - это не будет обрабатывать все случаи.

Запустите ваш чистый код в переопределении OnNavigatedFrom () [что говорит ваш текст, но не ваш код], когда для NavigationMode (внутри аргументов события) установлено значение «Назад».

Кроме того, обратите внимание, что OnNavigateTo () может вызываться несколько раз на одном и том же экземпляре (например, при переходе к нему назад) - иметь локальную переменную, которая говорит, добавили ли вы уже элементы, чтобы вы не делали этого. нажми еще раз.

Уточняющие вопросы: загружаете ли вы одну и ту же страницу несколько раз или только один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...