我在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的网格 我怎样才能做到这一点?还是不可能?
答案 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。