从Grid中移除指定的子元素

5
我需要在运行时删除 Grid(grid1)的指定元素。以下是我添加元素的代码。
 examControls.Add(excontrol);  // add the element on the ArrayList
 excontrol.Margin = new Thickness(x, y + margin, 0, 0);
 grid1.Children.Add(excontrol);   

如何在运行时删除指定的“excontrol”元素(在运行时添加)?提前致谢。

你需要在XAML中完成这个任务。请提供所需的屏幕截图,我们会给你正确的实现方式。 - Federico Berasategui
2个回答

11

如果您保留对控件的记录,您只需执行以下操作:

grid1.Children.Remove(excontrol);

如果您没有保存要删除的控件的变量,您需要以某种方式(标签、名称)识别它,然后在网格的子项中查找该控件,然后调用Remove方法。


这会释放内存空间吗? - Aric
@AricFowler - 我认为是这样的,一旦excontrol超出作用域并且不在任何其他地方引用,它就会被释放。 - ChrisF

6
grid1.Children.Remove(excontrol) //edited per your edit -- this is exactly what ChrisF posted though

或者

grid1.Children.RemoveAt(index)

@NicolòCarpignoli 没问题。在未来,文档是你的朋友。为了找到你问题的答案,我只是谷歌搜索了“c# wpf grid”。这个页面是第一个结果。你会看到Children是一个UIElementCollection,它恰好展示了你正在寻找的内容。 - tnw
现在当我谷歌搜索时,这个答案就会出现。所以,你知道的...感谢你的提问哈哈 - Carlos Rodriguez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接