1
我想添加一個VisualState觸發器到ListView,但它沒有被觸發。這是最有效的方式,因爲ListView中的項目數量有時可能大於300+。如何在UWP中的ListView中插入VisualState觸發器?
當寬度變小時,觸發器試圖重新定位網格。
我當前的代碼:
<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>
由於原來如此! – AbsoluteSith
請你解釋一下,爲什麼我要包裝它? – LaoR