在ListBox选择上切换ToggleButton的IsChecked

时间:2013-08-15 23:39:27

标签: wpf triggers listbox togglebutton

我有一个刷新按钮(一个togglebutton)我想在我的列表框中选择一个项目后设置为“Checked”状态。 (使用我的togglebutton刷新列表框选择。) 当IsChecked为真时,toggleButton被成功设置为变蓝。

我尝试过的是以下变体:

  <ToggleButton x:Name=ShapeRefreshToggle />
  <ListBox x:Name=ShapeListBox" Selector.IsSelected="False"
           SelectedItem="{Binding SelectedShape, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
       <i:Interaction.Triggers>
             <i:EventTrigger Selector.IsSelected="True">
                 <ei:GoToStateAction TargetName="connShapeRefreshToggle" StateName="Checked"/>
             </i:EventTrigger>
       </i:Interaction.Triggers>

谁能看到我在这里缺少的东西?我没有收到任何错误。

提前致谢!

1 个答案:

答案 0 :(得分:2)

似乎在DataTrigger

上使用ToggleButton可以正常工作
 <StackPanel>
    <ToggleButton Height="30" Width="80" Content="toggle" >
        <ToggleButton.Style>
            <Style TargetType="ToggleButton">
                <Setter Property="IsChecked" Value="True" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding SelectedItem, ElementName=listbox}" Value="{x:Null}">
                        <Setter Property="IsChecked" Value="False" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>

    <ListBox x:Name="listbox" ItemsSource="{Binding MyItems}" Height="100"/>
</StackPanel>

结果:

enter image description here enter image description here