<Grid>
<ListView>
<ListViewItem>
</ListViewItem>
<ListView.ItemTemplate >
<DataTemplate >
<Grid>
<StackPanel Height="{Binding height}" x:Name="ParentStackPanel">
<StackPanel Background="Black" x:Name="Data1" Grid.Row="0" Grid.Column="2" Margin="200,0,0,0"
HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBlock Text="2"></TextBlock>
</StackPanel>
<StackPanel Background="Black" Margin="60,-80,0,0" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left">
<TextBlock Text="3"></TextBlock>
</StackPanel>
<StackPanel Margin="0,-80,0,0" Background="Black" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left">
<TextBlock Text="4"></TextBlock>
</StackPanel>
<StackPanel Grid.Row="1" Background="Aqua" x:Name="something">
<TextBlock Text="5"></TextBlock>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
以上是我的Xaml代码。我希望在用户单击时增加特定ListViewItem的高度,如果用户再次单击该特定listViewItem,则其高度应恢复为原始高度。 基本上列表视图应该像android中的可扩展列表视图一样。
答案 0 :(得分:0)
不确定Windows手机,但在WPF中,您可以使用样式和触发器来驱动此行为:
<StackPanel>
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Height" Value="{Binding Height}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected" Value="True">
<DataTrigger.Setters>
<Setter Property="Height" Value="New expanded height here" />
<DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
<Style>
</StackPanel.Style>
</StackPanel>
这是粗糙的并且手工输入,所以可能不完全准确,但它应该让你走上正确的轨道。
我已经被告知WP不支持触发器,所以你最好的选择可能就是在这个问题中使用视觉状态管理器: