2013-04-11 35 views
1

我們有一個自定義對話框(從ContentControl派生),它傾向於位於UserControl之內。對話框本身具有可以關閉的功能。檢查時的關閉功能似乎只關閉了Dialog本身,而不是其父容器。用戶控件中的自定義對話框

public void CloseDialog() 
{ 
    Visibility = Visibility.Collapsed; 
    if (null != DialogClosedEvent) 
     DialogClosedEvent(); 
} 

我們的用戶控件通常像這樣

<UserControl> 
    <toolkit:OurDialog ... /> 
</UserControl> 

創建現在,這意味着,當我們關閉對話框,我們剩下的很多UserControl s的沒有在他們的身邊。這一切都可以像你期望的那樣工作 - 就能夠查看和關閉對話框而言 - 但是這會對性能產生影響而留下空的UserControls?如果是的話,這個問題的最佳解決方案是什麼?

+0

你有時會在以後「打開」這些對話框嗎? – 2013-04-11 12:42:21

+0

我們會是的..我們現在還沒有達到這一點 - 但我希望這會成爲一個問題,當我們做! – Chris 2013-04-11 12:43:18

回答

0

由於您將在稍後再次「打開」這些對話框,有時您需要按照原來的方式進行操作。我不指望你會看到任何真正的性能問題。我的意思是「關閉」它,並「打開」它並沒有真正添加任何更多的標記。你只是讓它看不見而已。所以你在運行時並沒有真正擴散它們。

總之,看看Window加載時的內存佔用情況,如果你滿意,那麼你就很好 - 通過使這些對話框可見或不可見,不會改變。