Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 296
Danny Beckett Avatar asked Apr 02 '15 05:04

Danny Beckett


1 Answers

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.

like image 103
Danny Beckett Avatar answered Oct 15 '22 14:10

Danny Beckett