2013-05-30 4 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

提案はまた、あなたが問題を解決するために、変更点に投稿します。 –

関連する問題