ItemsSourceがアイテムViewModelクラスインスタンスのコレクションに設定されたWPF ListViewコントロールがあります。 ListViewにはカスタムコントロール階層を持つItemTemplateがあります。WPF ListView - レンダリングされたアイテムを反復処理する準備が整ったときのイベントですか?
ListViewが実際に表示されていて、アイテムがすべてレイアウトされている(つまり、ItemContainerGenerator.ContainerFromItem
を安全に使用している)ときに、ItemTemplateによって生成されたコントロールに対して特定の処理を行う必要があります。
ItemContainerGenerator.StatusChanged
を購読すると、ステータスがGeneratorStatus.ContainersGenerated
に変更されても、発電機には何も表示されません(?!?btw。)。実際にコントロールがアイテムにバインドされているを繰り返し実行する準備ができているときに、どのように通知することができますか?
は今、私は、テンプレート内実際の制御のイベントにsubcribeことができます知っているが、私は私を助けていない項目ののviewmodelにSTUFをやって、項目のコントロールの全てが作成されたときに知っておく必要がありますアニメーションなどのようなUI関連のものを行う必要があるからです。
添付のビヘイビアでうまくやっていますが、listitemごとに起動するので、それは助けにならないだけでなく、すでにdatatemplate.control.loadedイベントでそれを達成できると思います。私のアニメーション効果はアイテムの数とその順序に依存するので、アイテムのすべて*が読み込まれレイアウトされたときにイベントが必要です。私は各アイテムの 'loaded'を追跡し、ゼロに達するまでカウンタを減らすことができましたが、それは最後の手段になります。 –