为什么我一直得到InvalidOperationException WP7

时间:2012-03-21 10:41:52

标签: windows-phone-7 exception

我有一个问题:我一直得到一个InvalidOperationException:Element已经是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 个答案:

答案 0 :(得分:1)

不要在OnBackKeyPress上执行此操作 - 这不会处理所有情况。

当NavigationMode(在事件args中)设置为“Back”时,在OnNavigatedFrom()[这是你的文字所说的,但不是你的代码]覆盖中运行你的清晰代码。

另外,请注意OnNavigateTo()可以在同一个实例上多次调用(例如,当您导航回它时) - 有一个局部变量,表明您是否已经添加了这些项目,因此您不需要再次击中它。

澄清问题:您是多次加载同一页面,还是仅加载一次?