3

親アイテムが展開されたときに子アイテムを自動的に(できるだけ多く)スクロールして表示するカスタムWPF /MVVMTreeViewコントロールを作成しようとしています。

この投稿、WPF TreeViewを見つけました-展開されたブランチが表示されるようにスクロールする方法ですが、ツリーアイテムが実際にTreeViewItemから派生している場合にのみ機能するようです。

My Tree Itemクラスは単なるC#オブジェクトです-Josh Smithのブログhttp://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewModeに沿って、 TreeItemクラスのIsExpandedプロパティセッターに遅延ロードされます。

OnExpandイベントハンドラーにステップインすると、元のソースがTreeViewItem(バックグラウンドでフレームワークによって作成されたもの)であり、ヘッダーフィールドにツリーアイテムオブジェクトが含まれていることがわかります。このTreeViewItemには、視覚的な子が1つ、グリッドが1つだけあり、グリッドには、ToggleButton、Border、ItemsPresenterの3つの視覚的な子があります。

子アイテムに対応するビジュアルコンポーネントを取得して、BringIntoView()を呼び出す方法について、誰かがヒントを持っていますか?

4

2 に答える 2

2

選択したアイテムをスクロールして表示する非常に優れた動作が見つかりました。ここにあります。

残念ながら、これはアイテムが拡張された場合には対応しませんが、正確な要件に応じて変更できます. 何か助けが必要な場合は、私に知らせてください。

http://www.codeproject.com/Articles/28959/Introduction-to-Attached-Behaviors-in-WPF

于 2013-07-05T14:49:37.790 に答える