Xaml 如何在UWP中的ListView中插入VisualState触发器?

Xaml 如何在UWP中的ListView中插入VisualState触发器?,xaml,winrt-xaml,win-universal-app,windows-10,Xaml,Winrt Xaml,Win Universal App,Windows 10,我正在尝试将VisualState触发器添加到Listview,但它没有被触发。这是最有效的方法,因为ListView中的项目数有时可能会超过300个 当宽度变小时,触发器尝试重新定位栅格 我当前的代码: <Page.Resources> <DataTemplate x:Key="mainDataTemplate"> <Grid Padding="15" BorderBrush="Aqua" BorderThickness="1" Margi

我正在尝试将VisualState触发器添加到Listview,但它没有被触发。这是最有效的方法,因为ListView中的项目数有时可能会超过300个

当宽度变小时,触发器尝试重新定位栅格

我当前的代码:

<Page.Resources>
    <DataTemplate x:Key="mainDataTemplate">
        <Grid Padding="15" BorderBrush="Aqua" BorderThickness="1" Margin="6">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup>
                    <VisualState x:Name="mobileView">
                        <VisualState.Setters>
                            <Setter Target="TitleDescGrid.(Grid.Row)" Value="1" />
                            <Setter Target="TitleDescGrid.(Grid.Column)" Value="0" />
                            <Setter Target="TitleDescGrid.(Grid.ColumnSpan)" Value="2" />
                            <Setter Target="PosterGrid.Background" Value="Pink" />
                        </VisualState.Setters>
                        <VisualState.StateTriggers>
                            <AdaptiveTrigger MinWindowWidth="500" />
                        </VisualState.StateTriggers>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>

            <Grid x:Name="PosterGrid" Grid.Column="0" Grid.Row="0"  Margin="3,10,3,3"
                                  Height="400" Width="180" DataContext="{Binding}" Background="SaddleBrown"
                                  SizeChanged="PosterGrid_SizeChanged">
                <TextBlock Text="{Binding}" />
            </Grid>
            <Grid x:Name="TitleDescGrid" Grid.Row="0" Grid.Column="1"
                                  SizeChanged="TitleDescGrid_SizeChanged"
                                  Background="DarkCyan" DataContext="{Binding}" 
                                  Width="420" Margin="5,14,5,5" >
                <TextBlock Text="{Binding}" />
            </Grid>
            <Grid x:Name="RatingsGrid" Grid.Row="0" 
                                  DataContext="{Binding}" 
                                  Grid.Column="2"
                                  Background="Olive"
                                  Width="200" Margin="5,15,0,0" >
                <TextBlock Text="{Binding}" />
            </Grid>
        </Grid>
    </DataTemplate>
</Page.Resources>

在里面我有一个声明ListView的部分

<StackPanel x:Name="ParentSP">
    <ListView  x:Name="movieListview" Margin="8,0,8,8" 
              Grid.Row="0"
              ItemTemplate="{StaticResource mainDataTemplate}" 
              SizeChanged="movieListview_SizeChanged">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>
</StackPanel>

尝试将数据模板的内容包装到UserControl中

所以


尝试将数据模板的内容包装到UserControl中

所以



你能解释一下,我为什么要包装它吗?你能解释一下,我为什么要包装它吗?
<Page.Resources>
    <DataTemplate x:Key="mainDataTemplate">
        <UserControl>
            <Grid Padding="15" BorderBrush="Aqua" BorderThickness="1" Margin="6">