1

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

<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 会有一点动画。即使列表设置为 SelectionMode="none",也会发生这种情况。因此,我需要将按下状态的视觉状态更改为

<VisualState x:Name="Pressed"/>

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

4

1 回答 1

1

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

于 2013-09-20T13:03:58.633 回答