仅来自用户请求的fire事件

时间:2016-12-12 11:15:51

标签: c# wpf events ischecked

只有当用户点击按钮时才能激活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 个答案:

答案 0 :(得分:1)

您可以尝试使用绑定模式&#34; OneWayToSource&#34;