2014-04-11 26 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(); 
相關問題