Est-ce que le moyen de faire Checked
et Unchecked
seulement le feu quand le bouton a cliqué par l'utilisateur?événement de feu seulement de la demande de l'utilisateur
IsChecked
est lié à la propriété Playing
. Cette valeur peut changer d'arrière-plan (pas par l'utilisateur). Ainsi, les événements Checked et Unchecked se déclenchent à nouveau et entrent en conflit avec d'autres éléments.
Lorsque j'essaie d'écrire du code pour résoudre ce problème, cela devient un vrai désordre. Merci de votre aide.
<ToggleButton x:Name="TogglePlay" Width="90"
Style="{DynamicResource TogglePlay}"
IsChecked="{Binding SessionData.Playing}"
Checked="TogglePlay_Checked" Unchecked="TogglePlay_OnUnchecked"/>
<StackPanel.Resources>
<Style x:Key="TogglePlay" TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked , ElementName=TogglePlay}" Value="False">
<Setter Property="Content" Value="Play" />
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked , ElementName=TogglePlay}" Value="True">
<Setter Property="Content" Value="Pause" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Resources>
Merci. Cela résout la plupart des problèmes. un problème est que lorsque le joueur s'arrête à l'arrière-plan, le contenu du bouton n'est pas mis à jour. –
Essayez de lier la propriété Content en mode TwoWay/OneWay et la propriété IsChecked en mode OneWayToSource. – acidhills
Peut-être dans votre situation, vous devez désactiver la liaison IsChecked, et simplement lier le contenu. – acidhills