0
Checked
とUnchecked
は、ユーザーがボタンをクリックしたときだけ発火させる方法はありますか?ユーザーイベントからの発砲イベント
IsChecked
は、Playing
プロパティにバインドされています。この値は、ユーザーからではなく背景から変更される場合があります。そのため、CheckedイベントとUncheckedイベントが再び発生し、他のイベントと競合します。
これを修正するコードを書こうとすると、本当に混乱します。ご協力いただきありがとうございます。
<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>
感謝。これはほとんどの問題を解決します。 1つの問題は、プレーヤーがバックグラウンドから停止すると、ボタンの内容が更新されないということです。 –
TwoWay/OneWayモードのContentプロパティとOneWayToSourceモードのIsCheckedプロパティのバインドを試みます。 – acidhills
場合によっては、IsCheckedバインディングを無効にしてコンテンツをバインドするだけで済みます。 – acidhills