14

asListBoxを持つを作成しました。しかし、コードビハインドの代わりに生成されたものにアクセスする簡単な方法はありますか?DataTemplateItemtemplateUIElementSelectedItem

にアクセスすると、コレクションSelectedItemから選択したオブジェクトを取得するだけです 。ItemsSourceにアクセスする方法はありますかUIElement(つまりDataTemplate、バインドされたオブジェクトと一緒に生成された要素)?

4

2 に答える 2

14

ItemContainerGeneratorプロパティを探しています。それぞれItemsSourceItemContainerGeneratorインスタンスがあります。このクラスには、興味があるかもしれない次のメソッドがあります:ContainerFromItem(object instance)

のハンドルを取得したら、ListBoxItem先に進んで論理ツリーと視覚ツリーを参照できます。論理ツリーヘルパービジュアルツリーヘルパーを確認してください。

Andyがコメントで言ったように、アイテムがコレクションに存在するからといって、そのアイテム用のコンテナーが生成されたわけではありません。あらゆる種類の仮想化パネルシナリオでこの問題が発生します。UIElementsは、さまざまなアイテムで再利用されます。それにも注意してください。

于 2009-03-04T17:26:20.720 に答える