2014-11-14 111 views
1

標題說明了一切 - 如何從堆棧面板中刪除除第一個之外的所有項目? Clear()只是全部刪除它們,在這種情況下不起作用。 RemoveAt()並沒有真正的幫助。在任何給定時間沒有設置在堆疊面板上的項目數量。從StackPanel中刪除除第一個以外的所有項目?

+1

所以'而(TitlePanel.Children.Count> 1){TitlePanel.Children.RemoveAt(1); }' - 不適合你? – 2014-11-14 22:04:32

+0

很好,謝謝。 – Kevin 2014-11-16 19:08:29

回答

2
panel.Children.RemoveRange(1, panel.Children.Count - 1); 

參見RemoveRange函數(MSDN)。

上面的代碼將刪除第二項計數所有的孩子 - 1(因爲你想保持的第一個元素)。

對於Windows Phone 8的,你沒有得到的功能,所以你需要做這樣的事情:

//Reversed to avoid the collection mutation exception 
foreach (UIElement item in panel.Children.Skip(1).Reverse()) 
    panel.Remove(item); 

不作爲「聰明」,但其短,和明顯的你在做什麼!

+0

WP4中不存在RemoveRange。 – Kevin 2014-11-14 21:59:36

+0

@Kevin我目前沒有WP8設置進行測試,但我的編輯*應該*工作。 – BradleyDotNET 2014-11-14 22:04:47

相關問題