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

選択したくないだけなら、なぜ ListView の代わりに ItemsControl を使用しないのでしょうか? ただし、仮想化が実装されていないことに注意する必要があります。詳細については、こちらを参照してください。

于 2013-09-20T13:03:58.633 に答える