2013-05-30 186 views
8

我有一個ListView,它具有基於網格的數據模板。該XAML如下:在ListView ItemTemplate中填充網格填充

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

我想要什麼,是電網,以填補(伸過來)母公司的ListView的整個水平寬度,但它目前換到其內容之和的寬度。我怎樣才能達到我想要的行爲?

回答

16

您需要將ListViewItem.HorizontalContentAlignment設置爲Stretch。嘗試添加該到你ListView定義:

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

完美,謝謝:) – 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

建議也張貼你爲了解決這個問題改變了什麼。 –