2014-04-11 25 views
0

我有一个简单的应用程序页面和内容面板,我在内容面板中添加一个usercontrol。当我点击一个按钮来删除它时,userControl的析构函数没有执行。为什么?windows phone 8:当用户控件从其父面板中移除时,不能放置用户控件?

这里是我的主网页:

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Button Grid.Row="0" Content="AddOrRemove" Click="Button_Click"/> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 

    </Grid> 
</Grid> 

按钮点击事件是:

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     if (this.ContentPanel.Children.Count > 0) 
     { 
      this.ContentPanel.Children.Clear(); 
      return; 
     } 

     page = new PromptPage(); 
     this.ContentPanel.Children.Add(page); 
    } 

PromptPage.xaml:

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}"> 
    <StackPanel> 
     <TextBlock Text="balabalaabcdefghijklmnop1"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop2"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop3"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop4"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop5"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop6"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop7"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop8"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop9"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop10"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop11"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop12"></TextBlock> 
     <TextBlock Text="balabalaabcdefghijklmnop13"></TextBlock> 
    </StackPanel> 
</Grid> 

PromptPage.xaml.cs:

public PromptPage() 
    { 
     InitializeComponent(); 
    } 


    ~PromptPage() 
    { 
     System.Diagnostics.Debug.WriteLine("disposed!"); 
    } 

回答

1

从您的代码中,我当然可以说它不会被处理,因为您的MainPage仍然保留对page的引用。删除后尝试将其设为空:

page = null; 

但是,仅仅立即控制控制是不够的。您必须等待GC过程或稍后直接调用它:

GC.Collect(); 
相关问题