2014-01-07 3 views
1

Ниже мой кодWindows, 8.1, XAML привязки ListView, но не показывает первый элемент

<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

Возможный дубликат [ListView ItemTemplate 100% width] (http://stackoverflow.com/questions/18626696/listview-itemtemplate-100-width) – JasonMArcher

ответ

0

Вы можете сделать :

<ListView SelectedIndex="0"> 

Если вы хотите, чтобы выбрать первый элемент в списке при загрузке.

2

У меня была такая же проблема, и я просто исправил ее!
Оба мы попытались установить Grid Width путем связывания с ListView.ActualWidth, но он не работает, пока первый элемент не будет оказана, поэтому первый elemnt всегда 0 Ширина :(

Чтобы решить эту проблему, пожалуйста, сделайте это (на основе this answer по @Kievic

Установка ListView.ItemContainerStyle с HorizontalContentAlignment сеттер делает трюк.

<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    </Style> 
</ListView.ItemContainerStyle> 
+2

Добро пожаловать в StackOverflow. Даже если ваша ссылка содержит ответ на этот вопрос, пожалуйста, вставьте соответствующие детали в свой ответ. – Kaiido

+0

Ссылка на другой ответ SO не является хорошим ответом. Это должен быть предлагаемый дубликат для этого вопроса. – JasonMArcher

+1

Я просто столкнулся с той же проблемой, и этот ответ был очень полезен. Я, возможно, никогда не догадался, что привязка ActualWidth дала нуль для первого элемента. Спасибо! – NSFW

Смежные вопросы