<ToggleButton Command="{Binding Path=Command}" Content="{Binding Path=DisplayName}" Template="{Utilities:BindableResource {Binding Path=TemplateResource}}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=SelectedTemplateResource}}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
La première ressource pouvant être liée fonctionne pour "TemplateResource" sur la propriété template de togglebutton, cependant "SelectedTemplateResource" ne fonctionne pas dans le setter de tiggers. Ce code est dans un resourcedictionary où la ressource réelle est dans un resourcedictionary thématique.La ressource 1 fonctionne, 2 ne fonctionne pas
Je reçois une erreur disant que la clé est null pour xamlparseexception pour la valeur de setter. Cela fait des heures que je fais des pauses mais je n'arrive pas à comprendre pourquoi ça ne marche pas ... Si je supprime le premier style et remplace la première par la deuxième ressource, elle s'affiche correctement, mais la reliure dans le style ne fonctionnera pas .
Quelqu'un a-t-il une idée de pourquoi?
EDIT Je viens d'essayer, mais pas de chance.
<ToggleButton Command="{Binding Path=Command}" Content="{Binding Path=DisplayName}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=TemplateResource}}" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=SelectedTemplateResource}}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
Vous devriez regarder [la dépendance de la valeur de la propriété de dépendance] (http://msdn.microsoft.com/en-us/library/ms743230.aspx) car cela ne fonctionnerait pas même sans l'erreur. –
Y at-il de toute façon autour de ça? J'ai un modèle mvvm mis en place autour des commandes et des espaces de travail et la commande est essentiellement un bouton avec une ressource thématique spécifiée ... qui fonctionne ... elle obtient juste l'effet d'une ressource d'état sélectionnée à mettre à jour lorsque le bouton est cliqué. – bl4kh4k
Pour corriger la priorité, il suffit de déplacer la valeur locale ('Template =" ... "') vers un Setter dans le style. –