2010-06-01 4 views
0

Hey. J'ai un tabcontrol qui est lié à une collection observable.Tabitem.focus se concentre uniquement sur l'en-tête tabitem

J'ai essayé de faire

var tabitem = (TabItem)this.SingleOrDefault(ti => ti.Name == tabname); 
    tabitem.Focus(); 
    ((UserControl)tabitem.Content).Focus(); 

Et il ne semble comme il se concentre sur le TabItem, mais seulement sur un BTN dans l'en-tête du TabItem, et non sur le contenu. le contenu de tabitem est un autre usercontrol.

Comment puis-je changer le focus sur le contenu, de sorte que l'onglet est effectivement sélectionné et pas seulement le tabheader

Je sais de tabcontrol.selecteditem, mais pas vraiment sûr IoM comment je mettre en œuvre ce que Le observablecollection est en fait une classe que j'ai appelée ObservableTabCollection, qui implémente simplement la collection observable.

Répondre

0

Ma solution est devenue simplement créer une méthode sur l'observabletabcollection qui associerait le tabcontrol avec le observabletabcollection

public TabControl AssociatedTabControl; 

internal void BindToTabControl(TabControl TabCtrl) 
     { 
      AssociatedTabControl = TabCtrl; 
     } 

puis à l'intérieur d'un appel de méthode

if (AssociatedTabControl != null) AssociatedTabControl.SelectedItem = tabitem; 
0

Liez TabControl.SelectedItem à un TabItem spécifique à partir de votre ObservableTabCollection. Ensuite, vous pouvez définir la liaison à n'importe quel élément que vous retirez de votre ObservableTabCollection pour faire de cet onglet l'onglet indiqué.

+0

Salut Stephan - merci pour votre réponse. Pouvez-vous montrer un exemple de code de cela? Serait-ce dans le xaml ou dans le code-behind? Je le préférerais dans le code-behind – Jakob

+0

Pourquoi préférez-vous le code-behind? L'une des principales raisons d'utiliser Silverlight est d'éviter d'utiliser le code-behind autant que possible. Aussi je pense que je suis peut-être un peu confus quant à la configuration de votre application. D'où le TabControl obtient-il son TabItem? La liaison à un autre contrôle ou est-elle liée à une propriété du code-behind? – Stephan

Questions connexes