从StackPanel中删除除第一个以外的所有项目?
问题描述:
标题说明了一切 - 如何从堆栈面板中删除除第一个之外的所有项目? Clear()只是全部删除它们,在这种情况下不起作用。 RemoveAt()并没有真正的帮助。在任何给定时间没有设置在堆叠面板上的项目数量。从StackPanel中删除除第一个以外的所有项目?
答
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
所以'而(TitlePanel.Children.Count> 1){TitlePanel.Children.RemoveAt(1); }' - 不适合你? – 2014-11-14 22:04:32
很好,谢谢。 – Kevin 2014-11-16 19:08:29