Windows 应用商店应用列表视图项数据绑定和视觉状态

本文关键字:应用 数据绑定 状态 视觉 视图 列表 Windows | 更新日期: 2023-09-27 18:32:11

我找不到处理这种情况的方法。我的 Windows 8 应用商店应用中有一个列表视图。该列表是数据绑定的,并具有如下所示的项模板。

<DataTemplate x:Key="FixtureItem">
            <Grid Height="110" Margin="6" Width="521" Background="#7F335107">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="110"/>
                    <ColumnDefinition/>
                    <ColumnDefinition Width="110"/>
                </Grid.ColumnDefinitions>
                <TextBlock x:Name="awayTeamScore" Text="{Binding AwayTeamScore}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="5,0,5,11" FontSize="22" FontWeight="Bold" Grid.Column="1" FlowDirection="RightToLeft" VerticalAlignment="Bottom" FontStretch="Condensed" />
                <TextBlock x:Name="matchInfo" Text="{Binding MatchInfo}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="10,40,10,50" FontSize="22" FontWeight="Bold" Grid.Column="1" FlowDirection="RightToLeft" TextAlignment="Center"/>
                <TextBlock x:Name="homeTeamScore" Text="{Binding HomeTeamScore}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="5,6,5,0" FontSize="22" FontWeight="Bold" Grid.Column="1" Height="20" VerticalAlignment="Top" FontStretch="Condensed" />
                <Image x:Name="homeTeamImage" Source="{Binding HomeImage}" Stretch="Uniform" AutomationProperties.Name="{Binding HomeTeam}" Width="110"/>
                <Image x:Name="awayTeamImage" Source="{Binding AwayImage}" Stretch="Uniform" AutomationProperties.Name="{Binding AwayTeam}" Grid.Column="2"/>
            </Grid>
        </DataTemplate>

我遇到的问题是,当您单击列表视图中的项目时,Windows 8 会有一个小动画。即使列表设置为"选择模式="无",也会发生这种情况。因此,我需要将按下状态的视觉状态更改为

<VisualState x:Name="Pressed"/>

但我似乎无法让它在我的数据模板中工作。在不破坏数据绑定的情况下执行此操作的正确方法是什么?

Windows 应用商店应用列表视图项数据绑定和视觉状态

如果您只是不想要任何选择,为什么不考虑使用 ItemsControl 而不是 ListView?您必须记住,虚拟化并未在那里实现,请查看此处了解详细信息。