明确特定网格的孩子

时间:2018-01-22 12:05:26

标签: c# wpf grid

假设我有网格:

Grid ctGdLanguag

我添加了按钮子项。

TextBlock t = new TextBlock();
Button b = new Button();
ctGdLanguage.Children.Add(b);
ctGdLanguage.Children.Add(t);

我知道方法:

 ctGdLanguage.Children.Clear()

清除ctGbLanguage网格的所有子项。

但我的问题是,是否可以只删除按钮子项? 我想离开TextBlock孩子并清除按钮是否可能?

2 个答案:

答案 0 :(得分:0)

如果您知道特定元素名称,则可以使用Remove()方法

TextBlock t = new TextBlock();
Button b = new Button();
ctGdLanguage.Children.Add(b);
ctGdLanguage.Children.Add(t);
ctGdLanguage.Children.Remove(b);

答案 1 :(得分:0)

使用一些简单的LINQ就足够了:

var buttons = ctGdLanguag.Children.OfType<Button>().ToList();

foreach (var button in buttons)
    ctGdLanguag.Children.Remove(button);

OfType<Button>()仅包含Button类型的子项(或子类型)。  ToList()将按钮复制到一个单独的列表中,这样您就可以在修改网格的Children集合时对其进行迭代。