我在 windows phone 项目中有两个页面:
主页.xaml
<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>
MainPage.xaml.cs
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);
}
AddPage.xaml.cs
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));
}
我正在使用 App 作为列表的存储。
问题是当我尝试将列表项添加到 MainPage 上的堆栈面板时,它会在我添加列表中的第二项(在 AddPage 上)并返回后创建一个异常(元素已经是另一个元素的子元素。) MainPage 并尝试打印它。