2016-12-12 44 views
0

是否有任何方法使CheckedUnchecked僅在用戶點擊按鈕時觸發?僅從用戶請求觸發火災事件

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

你可以嘗試使用綁定模式 「OneWayToSource」

+0

感謝。這確實解決了大多數問題。一個問題是,當玩家從後臺停止時,按鈕內容不會更新。 –

+0

嘗試在OneWayToSource模式下綁定TwoWay/OneWay模式和IsChecked屬性中的Content屬性。 – acidhills

+0

也許在你的情況下,你應該禁用IsChecked綁定,並綁定內容。 – acidhills