Rachael
Rachael

Reputation: 1993

Toggle ToggleButton's IsChecked on ListBox Selection

I have a refresh button (a togglebutton) I would like to set to the "Checked" state when an item has been selected in my listbox. (Listbox selections are refreshed using my togglebutton.) The toggleButton is successfully styled to turn blue when IsChecked is true.

What i've tried is variants of:

  <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>

Can anyone see what I'm missing here? I am not getting any errors.

Thanks in advance!

Upvotes: 2

Views: 1740

Answers (1)

sa_ddam213
sa_ddam213

Reputation: 43596

It seems to work fine with a DataTrigger on the 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>

Result:

enter image description here enter image description here

Upvotes: 2

Related Questions