2009-08-18 104 views
1

我有這個ListView,我正在使用一個DataTemplate(如你所見)的項目。 如何使用此ItemTemplate定義將列名添加到ListView中? 我無法使用GridViewColumn定義,因爲此ListView使用惰性數據加載,所以當行數太多時,它會根據需要提取它們。不知何故,這個懶惰加載不起作用。帶有列名的WPF ListView?

<ListView Grid.Row="3"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid x:Name="grid" Background="Transparent" MinWidth="580" > 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="220" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="100" /> 
          <ColumnDefinition Width="70"/> 
          <ColumnDefinition Width="80"/> 
         </Grid.ColumnDefinitions> 
         <TextBlock VerticalAlignment="Center" Grid.Column="0" Text="{Binding Path=Benutzer.Value.Code}"/> 
         <TextBlock VerticalAlignment="Center" Grid.Column="1" Text="{Binding Path=Nachname}"/> 
         <TextBlock VerticalAlignment="Center" Grid.Column="2" Text="{Binding Path=Vorname}"/> 
         <TextBlock VerticalAlignment="Center" Grid.Column="3"> 
           <TextBlock.Text> 
            <Binding Path="GeburtDate" StringFormat="{}{0:d}"/> 
           </TextBlock.Text> 
         </TextBlock> 
         <Button VerticalAlignment="Center" Grid.Column="4" Style="{StaticResource StyleEditButton}" Content="Öffnen..." Tag="{Binding}" Click="OpenPersonButton_Click"/> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ListView> 

回答

3

我不認爲這是在使用ListView如果像你說的任何一點,你不能使用GridView(或任何其它視圖)。我會換ListViewItemsControl(或ListBox,如果你需要一個可選項目或ListBox提供的任何其他東西)。

如果你說的是真的,你可以只使用一個堆棧面板位置的上方您的數據行的標題行:

<StackPanel> 
    <!-- Header --> 
    <StackPanel Orientation="Horizontal"> 
    <TextBlock Width="220" TextAlignment="Center" Text="Code" /> 
    <TextBlock Width="100" TextAlignment="Center" Text="Nachname" /> 
    <TextBlock Width="100" TextAlignment="Center" Text="Vorname" /> 
    <TextBlock Width="70" TextAlignment="Center" Text="GeburtDate" /> 
    </StackPanel> 
    <!-- Data rows --> 
    <ItemsControl> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" MinWidth="580"> 
      <TextBlock Width="220" TextAlignment="Center" Text="{Binding Path=Benutzer.Value.Code}" /> 
      <TextBlock Width="100" TextAlignment="Center" Text="{Binding Path=Nachname}" /> 
      <TextBlock Width="100" TextAlignment="Center" Text="{Binding Path=Vorname}" /> 
      <TextBlock Width="70" TextAlignment="Center" Text="{Binding Path=GeburtDate, StringFormat={0:d}}" /> 
      <Button VerticalAlignment="Center" Grid.Column="4" Style="{StaticResource StyleEditButton}" Content="Öffnen..." Tag="{Binding}" Click="OpenPersonButton_Click"/> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</StackPanel> 

希望有所幫助。您可能還想了解虛擬化面板。這可能會提供你所談論的那種懶惰。