2009-08-18 5 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

나는 당신이 말하는 같은 ListView 경우를 사용하여 모든 지점이 있다고 생각하지 않는다, 당신은 GridView (또는 다른 뷰를) 사용할 수 없습니다. 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> 

희망을. 또한 가상화 패널에 대해 읽어보십시오. 그것은 당신이 말하는 게으름을 줄 수 있습니다.

관련 문제