2013-05-30 14 views
8

Mam ListView, który ma szablon danych na podstawie siatki. XAML wygląda następująco:Tworzenie siatki w ListView ItemTemplate wypełnić

<ListView ItemsSource="{Binding SomeItemSource}" HorizontalAlignment="Stretch" Height="281"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid HorizontalAlignment="Stretch" Margin="3" Width="Auto"> 
       <Grid.RowDefinitions> 
        <RowDefinition></RowDefinition> 
        <RowDefinition></RowDefinition> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="70"></ColumnDefinition> 
        <ColumnDefinition Width="*"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <!-- Grid content here --> 
       <TextBlock Text="SomeTextbox" 
          Margin="5,5,0,0"/> 

       <TextBox Grid.Column="1" 
         Margin="0,5,0,0" 
         Text="{Binding SomeProperty, Mode=TwoWay}" 
         HorizontalAlignment="Left" 
         Width="90"/> 

       <TextBlock Text="AnotherText" 
          Grid.Column="0" 
          Grid.Row="1" 
          Margin="5,5,0,0"/> 

       <TextBox Grid.Column="1" Grid.Row="1" 
         Margin="0,5,0,0" 
         Text="{Binding AnotherProperty, Mode=TwoWay}" 
         HorizontalAlignment="Stretch" 
         Width="300"/> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

czego chcę, jest siatka do wypełnienia (rozciągnąć nad) całą poziomą szerokość ListView dominującej, jednak obecnie jest zawijany do szerokości suma jego zawartości. Jak mogę osiągnąć pożądane zachowanie?

Odpowiedz

16

Musisz ustawić ListViewItem.HorizontalContentAlignment na Stretch. Spróbuj dodać to do definicji ListView:

<ListView.ItemContainerStyle> 
    <Style TargetType="{x:Type ListViewItem}"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
    </Style> 
</ListView.ItemContainerStyle> 
+0

Perfect, thanks :) – havardhu

1
<ListView Name="Husam_Copy" HorizontalAlignment="Left" Height="181" Margin="60,86,0,0" VerticalAlignment="Top" Width="189" > 
     <ListView.ItemContainerStyle> 
      <Style TargetType="{x:Type ListViewItem}"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
       <Setter Property="Padding" Value="0"/> 
       <Setter Property="Margin" Value="0"/> 
       <Setter Property="BorderThickness" Value="0"/> 
      </Style> 
     </ListView.ItemContainerStyle> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Button Content="{Binding Title}" HorizontalAlignment="Stretch" Padding="0" Margin="0" /> 
      </DataTemplate> 
     </ListView.ItemTemplate> 


    </ListView> 
+0

sugestię również zamieścić co zmieniło się w celu rozwiązania problemu. –

Powiązane problemy