Carlo
Carlo

Reputation: 25969

Make a grid's width in ListView.ItemTemplate the same width as the ListViewItem

What I'm trying to do is to make a Grid inside of the ItemTemplate expand to the width of the ListViewItem and not to just the space it needs. This is how I DON'T want it to look like:

enter image description here

Basically I want the red grid to be the width of the blue rectangle (which is the selected item). This is my XAML:

<ListView ItemsSource="{Binding}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Background="Red">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding FirstName}" />
                <TextBlock Grid.Column="1" Text="{Binding LastName}" />
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Thanks in advance!

Upvotes: 9

Views: 7238

Answers (1)

HCL
HCL

Reputation: 36795

Do the following:

<ListView ItemsSource="{Binding}">
  <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
  </ListView.ItemContainerStyle>

  ..

Upvotes: 31

Related Questions