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