如何从 属性 = 某个值的 UIElementCollection 中 select child?

How to select a child from an UIElementCollection where a property = some value?

我有一个 UniformGrid,其中有 ButtonChildren。每个 Button 都有一个带有 ID 的 Tag,例如(简化代码):

MyUniformGrid.Children.Add(new Button {
    Margin  = new Thickness(5),
    Tag     = Query.GetUInt32("id"),
    Width   = 200
});

如何select ID为87的child Button object? (例如)

当我键入 MyUniformGrid.Children.(添加 using System.Linq; 之后)时,Intellisense 没有弹出 Linq 方法。

给你:

var MyButton = MyUniformGrid.Children.
               OfType<Button>().
               Single(Child => Child.Tag != null && Child.Tag == 87);

Linq 不能 运行 直接在 MyUniformGrid.Children 上,因为 UIElementCollection implements IEnumerable, not IEnumerable<T>。因此需要OfType<Button>