从StackPanel中删除除第一个之外的所有项目?

时间:2014-11-14 21:53:55

标签: c# windows windows-phone-8 windows-phone

标题说明了一切 - 如何从堆叠面板中删除除第一个之外的所有项目? Clear()只是将它们全部删除,在这种情况下无法工作。 RemoveAt()并没有真正帮助。在任何给定时间,堆栈面板中都没有设定数量的项目。

1 个答案:

答案 0 :(得分:2)

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

请参阅RemoveRange函数(MSDN)。

上面的代码将第二项中的所有子项删除到count - 1(因为你想保留第一个元素)。

对于Windows Phone 8,您无法获得该功能,因此您需要执行以下操作:

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

不是"聪明"但它的简短,显而易见的是你在做什么!