Windows应用商店应用ListView项目数据绑定和可视状态

时间:2013-09-20 12:19:03

标签: c# data-binding windows-store-apps winrt-xaml

我找不到处理这种情况的方法。我的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"/>

但我似乎无法在我的数据模板中使用它。在不破坏数据绑定的情况下,这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您不想要任何选择,为什么不考虑使用ItemsControl而不是ListView?您必须记住,虚拟化并未在那里实现, look here for details.