c# - 从 StackPanel 中删除第一个项目以外的所有项目?

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

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

最佳答案

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);

没有那么“聪明”,但它很简短,很明显你在做什么!

关于c# - 从 StackPanel 中删除第一个项目以外的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939456/

相关文章:

c# - 如何从 Uri xamarin android 获取实际路径

c# - Entity Framework Mysql 嵌套属性

c# - 从包含引用方法的委托(delegate)访问对象

c++ - 丢失 DLL 的一般方法

Windows 使用代理从 URL 批量下载文件

windows - 在 Dev-C++ 中编译 Windows 程序会出错

windows-phone-7 - 如果我更改现有 WP 应用程序的 ProductID 会发生什么?

windows-phone-7.1 - 有什么简单的方法可以将 wp OS 8 应用程序降级到 OS 7.1?

windows-phone-7 - 我可以在可移植类库中使用 "dynamic"关键字吗?

c# - 如何使用 FK NHibernate 映射复合 PK