相互切换按钮 - 使用两个切换按钮来表示使用触发器的三态

时间:2017-11-29 02:00:41

标签: wpf xaml triggers togglebutton

我需要两个切换按钮才能相互重置。类似于单选按钮但具有三态。即

  • 检查按钮1
  • 检查按钮2
  • 未选中

我尝试了以下内容:

    <ToggleButton x:Name="Button1" IsEnabled="{Binding IsConnected}">
        <ToggleButton.Style>
            <Style TargetType="ToggleButton" BasedOn="{StaticResource DetailedSettingsButtonStyle}" >
                <Setter Property="IsChecked" Value="False" />
                <Style.Triggers>
                    <DataTrigger  Binding="{Binding ElementName=Button2, Path=IsChecked}" Value="True">
                        <Setter Property="IsChecked" Value="False" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>

    <ToggleButton x:Name="Button2"
                  IsEnabled="{Binding IsConnected}">
        <ToggleButton.Style>
            <Style TargetType="ToggleButton" BasedOn="{StaticResource DetailedSettingsButtonStyle}" >
                <Setter Property="IsChecked" Value="False" />
                <Style.Triggers>
                    <DataTrigger  Binding="{Binding ElementName=Button1, Path=IsChecked}" Value="True">
                        <Setter Property="IsChecked" Value="False" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>

结果是当选中按钮1并单击按钮2时,按钮1将按预期取消选中,但按钮2保持未选中状态,直到我再次按下它。

因此,为了在按钮1和2之间切换,我必须在按钮2上单击两次。

换句话说,考虑到我想要创建的三个状态,我必须每次都经过非选择状态,并且无法直接在其他两个状态之间移动。

知道我做错了什么吗?

0 个答案:

没有答案