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>
감사합니다. 이것은 대부분의 문제를 해결합니다. 한 가지 문제는 플레이어가 배경에서 멈 추면 버튼 콘텐츠가 업데이트되지 않는다는 것입니다. –
OneWayToSource 모드에서 TwoWay/OneWay 모드의 Content 속성과 IsChecked 속성을 바인딩하십시오. – acidhills
아마도 상황에 따라 IsChecked 바인딩을 사용 중지하고 콘텐츠를 바인딩하기 만하면됩니다. – acidhills