2009-08-18 21 views
1

私はこのListViewを持っていて、アイテムのためにDataTemplateを使用しています。 このItemTemplate定義で列名をListViewに追加するにはどうすればよいですか? このListViewはレイジーデータ読み込みを使用するため、そのGridViewColumn定義を使用できません。したがって、あまりにも多くの行がある場合は、必要に応じて取り出します。 GridViewColumnこの遅延ロードでは何とか機能しません。列名を含む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

私はあなたが言うように、あなたがGridView(または他のビュー)を使用することはできません、場合ListViewを使用して任意のポイントがあるとは思いません。 ItemsControl(またはListBoxが提供する選択可能なアイテムまたはその他のものが必要な場合はListBox)の場合はListViewと交換します。

は、あなたが言うことが本当なら、あなたは自分のデータ行の上にヘッダー行を配置するスタックパネルを使用することができます役立ちます

<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> 

希望を。また、仮想化パネルについて読むこともできます。それはあなたが話している怠惰を提供するかもしれません。

関連する問題