Interaction des Déclencheurs dans le Style de ResourceDictionary WPF
J'ai un ComboBox
qui je dois l'utiliser à plusieurs endroits dans mon application, j'ai donc mis la plupart des propriétés de la ComboBox
dans ResourceDictionary
et de l'utiliser comme un Style où jamais j'en ai besoin.
Style pour le ComboBox
est:
<Style TargetType="{x:Type ComboBox}" x:Key="ComboBoxBranch">
<Setter Property="ItemsSource" Value="{Binding Branches}"></Setter>
<Setter Property="DisplayMemberPath" Value="BranchName"></Setter>
<Setter Property="SelectedItem" Value="{Binding SelectedBranch}"></Setter>
</Style>
et je l'utilise comme ça dans mon code XAML:
<ComboBox Style="{StaticResource ComboBoxBranch}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectCustomerCommand}" CommandParameter="{Binding SelectedBranch}" ></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
Je veux déplacer l'interaction déclenchement de code ainsi à ResourceDictionary
, je n'ai pas besoin de l'écrire dans tous mes xamls. Est ce que c'est possible?
OriginalL'auteur MegaMind | 2014-03-11
Vous devez vous connecter pour publier un commentaire.
Autant que je sache,
Interaction.Triggers
ne peut pas être appliquée dans le Style, respectivement, et dans un ResourceDictionary. Mais vous pouvez le faire, afin de déterminer laComboBox
comme une ressource avecx:Shared="False"
et de référence pourContentControl
comme ceci:Quand
x:Shared="True"
par défaut puis, un Style qui est commun à tous - dans ce cas, le système ne jure que sur le doubleContent
. Lorsquex:Shared="False"
quand est créé le Style pour chaque élément, chaque fois qu'il sa demande. Citation deMSDN
:Pour plus d'informations, veuillez consulter:
MSDN: x:Partagé l'Attribut
Edit: alternative solution
Ici
, M. Vspivak publié une solution qui vous permet de facilement régler laInteraction.Triggers
dans le Style.Exemple:
MainWindow.xaml
InteractivityHelper.cs
FlipOnHover.cs
ViewModel.cs
Pour plus d'info, voir ce lien:
à l'Aide de l'Interactivité des Comportements et des Actions en WPF/Silverlight Styles
Oui, dans ce cas, vous pouvez le définir dans la
App.xaml
.Window.Resources
c'est le même dictionnaire de ressources, et ses choisi uniquement pour la démonstration, il suffit de tester.Elle fonctionne. À l'aide de contrôle de contenu au lieu de zone de liste déroulante est très intelligent. Si possible, élaborés à l'utilisation de ContentControl au lieu de zone de liste déroulante peu plus, il vous aidera à comprendre comment cette chose fonctionne réellement. Merci
je vais avoir plusieurs contrôles dans ma fenêtre wpf et je wnat pour faire de l'interactivité déclencheur commun est-il possible
OriginalL'auteur Anatoliy Nikolaev
J'ai l'habitude de travailler avec Silverlight, donc je ne suis pas sûr si l'approche suivante est sensible dans WPF:
Vous pouvez tirer votre xaml dans un
UserControl
, direBranchSelection.xaml
par exemple:Et de l'utiliser comme ceci:
OriginalL'auteur Martin