J'ai un TreeView avec un modèle de données hiérarchique lié à une collection observable. Lorsque la collection est chargée, j'exécute du code qui sélectionne un TreeViewItem spécifique et doit ensuite mettre le focus sur TreeView. L'idée est que l'utilisateur devrait pouvoir utiliser les touches fléchées pour faire défiler les entrées dans TreeView. Le TreeView semble avoir le focus quand il est rempli, mais les touches arrtow ne font pas défiler la sélection. Si TreeView est ensuite cliqué n'importe où, les touches fléchées fonctionnent, ce qui suggère que le TreeView n'a pas de focus. Le code pertinent est:Silverlight 3 - TreeView n'obtenant pas le focus
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();
});
Toute aide serait grandement appréciée.