Winrt - ListView最后一项的特定ItemTemplate

时间:2015-08-11 16:55:49

标签: c# xaml windows-runtime windows-store-apps winrt-xaml

我在Windows商店应用项目上有这个列表视图

<ListView ItemsSource="{Binding Attachments}"  IsItemClickEnabled="False" SelectionMode="None">
                                <ListView.ItemTemplate>
                                    <DataTemplate >
                                        <Grid Width="280" Height="50" Margin="85,0,0,0">
                                            <Grid.RowDefinitions>
                                                <RowDefinition Height="*"/>
                                                <RowDefinition Height="5" />
                                            </Grid.RowDefinitions>
                                            <RadioButton GroupName="meetingFiles" Content="TESTE" Style="{StaticResource RadioButtonStyle1}"></RadioButton>
                                            <TextBlock Text="1" HorizontalAlignment="Right"></TextBlock>
                                            <Grid x:Name="whiteLine" Grid.Row="1" Width="270" Height="1" Background="White" HorizontalAlignment="Center" />
                                        </Grid>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                            </ListView>

我希望listview上的最后一项不显示名为whiteLine的网格 我怎样才能做到这一点?还是不可能?

2 个答案:

答案 0 :(得分:2)

另一种解决方案是添加http://www.johndimm.com/FunWithSpeech/BingTranslator/,如下所示:

<ListView>
     <!-- Your Listview ItemTemplate /-->
     <ListView.Footer>
           <Grid Width="280" Height="50" Margin="85,0,0,0">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="5" />
           </Grid.RowDefinitions>
           <RadioButton GroupName="meetingFiles" Content="TESTE" Style="{StaticResource RadioButtonStyle1}"></RadioButton>
           <TextBlock Text="1" HorizontalAlignment="Right"></TextBlock>
     </ListView.Footer>
</ListView>

这并不是真正改变最后一项,而是添加一个始终位于ListView底部的元素,并且看起来与您的项目相同。这将使用户感觉它是列表视图的一部分,并且您将保持代码简单。

答案 1 :(得分:0)

无论

<ListView ItemTemplateSelector="..."/> 

或绑定Grid's Visibility就可以了。但是您需要在模型中使用某种类型的标志变量,以便您可以使用它来确定它是否是列表中的最后一个。

我使用上面的解决方案来替换ListView中每个项目的背景颜色,我的模型也包含RowID。