ItemsSourceがアイテムViewModelクラスインスタンスのコレクションに設定されたWPFListViewコントロールがあります。ListViewには、カスタムコントロール階層を持つItemTemplateがあります。
ListViewが実際に表示され(まだ表示されていない場合)、すべてのアイテムがレイアウトされている場合(つまり、安全に使用できる場合)に、ItemTemplateを介して生成されたコントロールに対して特定のことを行う必要がありますItemContainerGenerator.ContainerFromItem
。
サブスクライブするItemContainerGenerator.StatusChanged
と、ステータスがに変わってGeneratorStatus.ContainersGenerated
もジェネレーターにアイテムがありません(?!?ところで)。実行時に既存のコントロールでItemsSourceが変更された場合でも、ListViewがアイテムにバインドされている実際のコントロールを反復処理する準備ができたら、どのように通知できますか?
これで、テンプレート内の実際のコントロールのイベントをサブスクライブできることはわかっていますが、すべてのアイテムコントロールがいつ作成されるかを知る必要があります。アイテムのビューモデルでスタフを実行しても、UI関連を実行する必要があるため、役に立ちません。アニメーションなど。