ListView StyleTriggers не работают при использовании пользовательского ItemTemplate - PullRequest
0 голосов
/ 17 мая 2019

В моем приложении у меня есть ListView, и мне нужны некоторые Style.Triggers.Я использую пользовательский ItemTemplate, так что у меня есть значок рядом с текстом.Странно то, что триггеры не работают, когда я не использую ListView.View.

Когда я (по причинам отладки использую ListView.View, он работает отлично. Любые предложения о том, как обойти это? Я пытался установить фон на DataTemplate, но я не думаю, что это правильное решение, как мне нужнобольше триггеров, таких как IsMouseOver.

Триггеры не работают:

<ListView ItemsSource="{Binding SecondaryTabs}"
                          BorderThickness="0"
                          Background="Transparent"
                          ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                          ScrollViewer.CanContentScroll="False"
                          SelectedIndex="{Binding SelectedSecondaryTabIndex}"
                          ItemTemplate="{StaticResource SidePaneListViewTemplate}">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeftButtonUp">
                            <i:InvokeCommandAction Command="{Binding Path=SelectedChildTabChangedCommand, Mode=OneWay}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <ListView.ItemContainerStyle>
                        <Style TargetType="{x:Type ListViewItem}">
                            <Style.Triggers>
                                <Trigger Property="Control.IsMouseOver"
                                         Value="True">
                                    <Setter Property="Control.Background"
                                            Value="Green" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </ListView.ItemContainerStyle>
                </ListView>

Триггеры работают:

<ListView ItemsSource="{Binding SecondaryTabs}"
                          BorderThickness="0"
                          Background="Transparent"
                          ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                          ScrollViewer.CanContentScroll="False"
                          SelectedIndex="{Binding SelectedSecondaryTabIndex}"
                          ItemTemplate="{StaticResource SidePaneListViewTemplate}">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeftButtonUp">
                            <i:InvokeCommandAction Command="{Binding Path=SelectedChildTabChangedCommand, Mode=OneWay}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <ListView.ItemContainerStyle>
                        <Style TargetType="{x:Type ListViewItem}">
                            <Style.Triggers>
                                <Trigger Property="Control.IsMouseOver"
                                         Value="True">
                                    <Setter Property="Control.Background"
                                            Value="Green" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </ListView.ItemContainerStyle>
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="Date"
                                            Width="115"
                                            DisplayMemberBinding="{Binding Date, StringFormat='{}{0:dd/MM/yyyy-HH:mm}'}" />
                            <GridViewColumn Header="Amount"
                                            Width="40"
                                            DisplayMemberBinding="{Binding Amount}" />
                            <GridViewColumn Header="Method"
                                            Width="70" />
                            <GridViewColumn Header="User"
                                            Width="80"
                                            DisplayMemberBinding="{Binding User.UserName}" />

                        </GridView>
                    </ListView.View>
                </ListView>

Есть идеи, почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...