Ok je suis en train de comprendre WPF et le modèle MVVM populaire.MVVM WPF: Reflétant une propriété de contrôle à l'viewmodel, lorsqu'un événement se déclenche
Maintenant, j'ai cette question. J'utilise un contrôle de ruban avec plusieurs onglets. Dans ma ViewModel j'ai une propriété "ActiveTab (string)" Qui devrait refléter l'onglet actuellement actif.
Depuis RibbonControl n'a aucune propriété qui affiche ces informations je ne peux pas se lier à elle.
donc je pensais:
je pourrais lier l'événement sélectionné comme ceci:
<r:RibbonTab Label="tab1" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab2" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab3" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab4" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab5" Selected="RibbonTab_Selected"></r:RibbonTab>
Puis en codebehind définir la propriété dans le viewmodel en utilisant ActiveTab = sender.Label
Mais Ensuite, j'aurais besoin d'une référence à mon viewmodel dans le code derrière mon point de vue.
Je suis en train de résoudre ce problème sans utiliser le code derrière des fichiers. (MVVM).
Maintenant la vraie question: Est-il en quelque sorte possible d'utiliser un eventtrigger ou un eventetter. que lorsque l'événement sélectionné est déclenché. Un setter définit automatiquement la propriété activetab sur l'expéditeur. Valeur d'étiquette?
En utilisant XAML seulement.
- Mes excuses pour ma question plutôt mauvaise anglais et peut-être noobish. Je suis très nouveau à WPF =)
MISE À JOUR: Comme je viens de découvrir, il y a une propriété isSelected sur un ribbonTab.
Maintenant, j'ai quelques problèmes sur la façon de lier à la propriété dans mon viewmodel.
J'ai essayé le code suivant:
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="{Binding SelectedTab}" Value="{Binding RelativeSource=Self, Path=Label}" />
</Trigger>
</Style.Triggers>
</Style>
Mais cela ne fonctionne pas:
Error 1 Cannot find the Style Property 'SelectedTab' on the type 'Microsoft.Windows.Controls.Ribbon.RibbonTab'.
selectedTab est biensur dans mon viewmodel et non ribbonTab ...
Comment je fais le setter, définissez la propriété sur mon viewmodel avec la valeur de l'onglet? =)
Merci d'avance !!
Omg vous avez complètement raison. Pourquoi la documentation du ruban est-elle si limitée ... :(. –