2009-06-27 12 views
2

どのようにwpf要素を何らかの名前で削除できますか?以下のようなので、STH:キャンバス上のwpf要素をタグ名で削除するにはどうすればよいですか?

ofcourseの場合を除き
// 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") 

、RemoveElementWithTagは...既存の方法ではありません

答えて

2

ちょうどいくつかのLINQを使用することができます言っ

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

が、私は非常にクリーナーがあります疑いますあなたが達成しようとしていることを達成するためのより良い実行方法。

+0

+1です。私はそれを最初に好きでした。今は辞書を使っています。しかし、実際にidやsthで要素を取得する方法はありませんか? – Peter

+0

子コレクションはIDまたは参照によって物事を取得することしかサポートしていないので、LINQ/foreachを使用して正しい要素を見つける以外の方法はありません。 – chrischu

関連する問題