2009-06-27 9 views
2

Comment pouvez-vous supprimer un élément wpf par une sorte de nom? Alors STH comme:Comment supprimer un élément wpf sur une toile par son nom de tag?

// Bar is some kind of usercontrol 
Bar b = new Bar(); 
b.Tag = "someId"; 
theCanvas.Children.Add(b); 

// Later to be removed without having the reference 
theCanvas.Children.RemoveElementWithTag("someId") 

Sauf ofcourse, RemoveElementWithTag n'est pas une méthode existante ...

Répondre

2

pouvez simplement utiliser certains LINQ:

var child = (from c in theCanvas.Children 
      where "someId".Equals(c.Tag) 
      select c).First(); 
theCanvas.Children.Remove(child); 

Cela dit, je soupçonne fortement qu'il ya un nettoyeur , un moyen plus performant de réaliser tout ce que vous essayez d'accomplir.

+0

+1, puisque vous pourriez. Je l'ai fait comme ça en premier, maintenant j'utilise un dictionnaire pour ça. Mais n'y a-t-il vraiment aucun moyen d'obtenir un élément par id ou sth? – Peter

+0

Étant donné que la collection Children ne prend en charge que les objets par identifiant ou référence, il n'y a pas d'autre moyen que d'utiliser LINQ/foreach pour trouver le bon élément. – chrischu

Questions connexes