0
私は、観察可能なコレクションにバインドされた階層データテンプレートを持つTreeViewを持っています。コレクションのロードが完了すると、特定のTreeViewItemを選択し、TreeViewにフォーカスを移動するコードを実行します。アイデアは、ユーザーが矢印キーを使用してTreeView内のエントリをスクロールできる必要があるということです。ポピュレートされているときにTreeViewにフォーカスがあるように見えますが、Arrtowキーは選択範囲をスクロールしません。ツリービューがどこかでクリックされると、矢印キーが機能し、実際にはTreeViewにフォーカスがないことが示唆されます。関連するコードは次のとおりです。Silverlight 3 - TreeViewがフォーカスを取得しない
Dispatcher.BeginInvoke(delegate
{
TreeViewAutomationPeer trvAutomation =
(TreeViewAutomationPeer)TreeViewAutomationPeer.CreatePeerForElement(TreeViewIndex);
IScrollProvider scrollingAutomationProvider =
(IScrollProvider)trvAutomation.GetPattern(PatternInterface.Scroll);
IndexEntry highScoreEntry = _currentIndexViewModel.HighScoreEntry;
TreeViewItem myItem = TreeViewIndex.ContainerFromItem(highScoreEntry);
TreeViewIndex.Focus();
myItem.IsSelected = true;
if (scrollingAutomationProvider.HorizontallyScrollable)
scrollingAutomationProvider.SetScrollPercent(0, scrollingAutomationProvider.VerticalScrollPercent);
TreeViewIndex.Focus();
});
ご協力いただければ幸いです。
<ScrollViewer Name="_treeScroll">
<controls:TreeView x:Name="_tree"/>
</ScrollViewer>
をし、私はいくつかのツリー項目を展開したいとき: