C# 如何打印列表<;网格>;在Windows Phone上?

C# 如何打印列表<;网格>;在Windows Phone上?,c#,windows-phone-7,C#,Windows Phone 7,我在windows phone项目中有两个页面: MainPage.xaml AddPage.xaml.cs 我正在使用应用程序作为列表的存储。 问题是,当我尝试将列表项添加到主页面上的堆栈面板时,在添加列表中的第二项(在AddPage上)后,它会创建一个异常(元素已经是另一个元素的子元素)然后返回主页并尝试打印。这是一个很好的例子,说明了为什么要使用数据绑定……这只是我自己的一种练习,但我想知道为什么会出现这样的错误。原因是给定的对象只能添加一次到可视树中。如果不先删除子对象,就无法将todo

我在windows phone项目中有两个页面:

MainPage.xaml AddPage.xaml.cs 我正在使用应用程序作为列表的存储。

问题是,当我尝试将列表项添加到主页面上的堆栈面板时,在添加列表中的第二项(在AddPage上)后,它会创建一个异常(元素已经是另一个元素的子元素)然后返回主页并尝试打印。

这是一个很好的例子,说明了为什么要使用数据绑定……这只是我自己的一种练习,但我想知道为什么会出现这样的错误。原因是给定的对象只能添加一次到可视树中。如果不先删除子对象,就无法将
todoList
子对象添加到其他父对象。噢,现在它可以工作了(我在从中导航时刚刚使用了stackpanel中的Clear()函数)。非常感谢:)酷。。。也许发布你的答案并自我接受?
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                 <StackPanel x:Name="stp" Orientation="Horizontal"
 HorizontalAlignment="Left" Height="auto" VerticalAlignment="Top" Width="auto"/>
    </Grid>
private void gotoAddPage(object sender, EventArgs e)
{
    NavigationService.Navigate(new Uri("/AddPage.xaml",
    UriKind.RelativeOrAbsolute));
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{

    (App.Current as App).todoList.ForEach(delegate(Grid g)
    {
        stp.Children.Add(g);
    });

    base.OnNavigatedTo(e);
}
    private void OnAddButtonClick(object sender, RoutedEventArgs e)
    {
        RowDefinition rd = new RowDefinition();
        Grid gr = new Grid();
        gr.RowDefinitions.Add(rd);
        gr.ShowGridLines = true;

        TextBlock tb = new TextBlock();
        tb.Text = addTxtbox.Text;
        gr.Children.Add(tb);
        (App.Current as App).todoList.Add(gr);

        NavigationService.Navigate(new Uri("/MainPage.xaml",
        UriKind.RelativeOrAbsolute));
    }