Как при помощи триггера в WPF изменить картинку в дочернем элементе ListBox?

Есть ListBox, внутри которого выводится список аудио. Каждый элемент имеет картинку. Как сделать так, чтобы когда элемент выбран, картинка менялась на другую? Пробовал триггером на свойство IsSelected реагировать, ошибка "Свойство недоступно". И как написать сам триггер, чтобы он менял свойство Source у картинки?

<ListBox x:Name="ListAudio"
                 Margin="10,122,81,10"
                 MouseDoubleClick="ListAudio_MouseDoubleClick">
            
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <DataTemplate.Triggers>
                        <Trigger Property="IsSelected"  Value="true"></Trigger>
                    </DataTemplate.Triggers>
                    <StackPanel Orientation="Horizontal">

                        <Image Width="22"
                               Height="22"
                               Margin="5"
                               Source="/Images/play.png" />

                        <StackPanel>
                            <TextBlock FontWeight="Bold" Text="{Binding Path=title}"></TextBlock>
                            <TextBlock Text="{Binding Path=duration}" />
                        </StackPanel>

                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
            
        </ListBox>
  • Вопрос задан
  • 2124 просмотра
Решения вопроса 1
artem_b89
@artem_b89
Сетевой бездельник
Попробуйте так
<Image Width="22"
                               Height="22"
                               Margin="5"
                                >
                            <Image.Style>
                                <Style>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBoxItem}}" Value="true">
                                            <Setter Property="Image.Source" Value="../Images/play2.png"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBoxItem}}" Value="false">
                                            <Setter Property="Image.Source" Value="../Images/play.png"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>                                
                            </Image.Style>
                        </Image>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы