windows phone:更改所选ListviewItem的高度,使其可以像可扩展列表视图一样

时间:2015-04-28 09:19:14

标签: c# windows-phone-7 windows-phone-8 expandablelistview listviewitem

<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中的可扩展列表视图一样。

1 个答案:

答案 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不支持触发器,所以你最好的选择可能就是在这个问题中使用视觉状态管理器:

ListBox Selected Item Style for Windows Phone 8.1