问题
I have a UniformGrid
with a number of Button
's as Children
. Each Button
has a Tag
with an ID, e.g. (dumbed down code):
MyUniformGrid.Children.Add(new Button {
Margin = new Thickness(5),
Tag = Query.GetUInt32("id"),
Width = 200
});
How can I select the child Button
object with an ID of 87? (as a for instance)
Intellisense isn't popping up with the Linq methods when I type MyUniformGrid.Children.
(after adding using System.Linq;
).
回答1:
Here you go:
var MyButton = MyUniformGrid.Children.
OfType<Button>().
Single(Child => Child.Tag != null && Child.Tag == 87);
Linq can't be run directly on MyUniformGrid.Children
since UIElementCollection implements IEnumerable, not IEnumerable<T>. Therefore OfType<Button>
is required.
来源:https://stackoverflow.com/questions/29405363/how-to-select-a-child-from-an-uielementcollection-where-a-property-some-value