以下是我的代码
<ListView ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Hidden" HorizontalAlignment="Stretch" VerticalContentAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="None" Grid.Row="3" Grid.ColumnSpan="3" CanReorderItems="False" CanDragItems="False" IsRightTapEnabled="False" IsItemClickEnabled="True" BorderBrush="White" Background="White" ItemClick="lvGroupInfoCVS_ItemClick" RequestedTheme="Light" FontFamily="Helvetica" x:Name="lvGroupInfoCVS" ItemsSource="{Binding Source={StaticResource MyCollection}}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding ElementName=lvGroupInfoCVS, Path=ActualWidth}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" FontFamily="Helvetica" Grid.Column="0" Text="{Binding Name}" Foreground="DarkGray" FontSize="23" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="0" FontFamily="Helvetica" Grid.Column="1" Text="{Binding EventDate}" Foreground="DarkGray" FontSize="23" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" FontFamily="Helvetica" Grid.Row="0" Text="{Binding StartTime}" Foreground="DarkGray" FontSize="23" HorizontalAlignment="Center"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我的所有数据都显示正确,但我的第一项是空白的,尽管它是可点击的。我尝试改变宽度和高度,但我仍然有同样的问题
环境:Windows 8.1,XAML,C#
我试着查看其他类似的stackoverflow问题,但没有运气
答案 0 :(得分:2)
我遇到了同样的问题,我刚修好了!
我们两个都尝试通过绑定到Grid Width
来设置ListView.ActualWidth
,但是在第一个元素被渲染之前它不起作用,所以第一个元素总是有0个宽度:(
要解决此问题,请执行此操作(基于this answer的@Kievic
使用a设置ListView.ItemContainerStyle HorizontalContentAlignment setter可以解决问题。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
答案 1 :(得分:0)
你可以这样做:
<ListView SelectedIndex="0">
如果您希望它在加载时选择列表中的第一项。