Reputation: 1993
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
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:
Upvotes: 2