Greetings.
The topic is again about the unusual ListView.
In general, there is a code:
<Window.Resources> <vm:ViewModel x:Key="viewModel"/> <Style x:Key="cellBorder" TargetType="Border"> <Setter Property="BorderBrush" Value="#F0F0F0" /> <Setter Property="BorderThickness" Value="1" /> </Style> </Window.Resources> <Grid DataContext="{StaticResource viewModel}"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!-- headers --> <Grid Grid.Row="0" Background="#FDFDFD"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Border Grid.Column="0" Style="{StaticResource cellBorder}"> <TextBlock HorizontalAlignment="Center" Text="Name"/> </Border> <Border Grid.Column="1" Style="{StaticResource cellBorder}"> <TextBlock HorizontalAlignment="Center" Text="Price"/> </Border> </Grid> <ListView Grid.Row="1" BorderThickness="0" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Products}"> <ListView.Resources> <!-- this is what unselected items will look like --> <DataTemplate x:Key="DefaultItemTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Margin="3" FontSize="12" Text="{Binding Name}" /> <TextBlock Grid.Column="1" Margin="3" FontSize="12" Text="{Binding Price}" /> </Grid> </DataTemplate> <!-- this is what selected items will look like --> <DataTemplate x:Key="SelectedItemTemplate"> <Grid MinHeight="80" MaxHeight="150"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <!-- normal row data (with bold) --> <TextBlock Grid.Row="0" Grid.Column="0" Margin="3" FontSize="12" FontWeight="Bold" Text="{Binding Name}" /> <TextBlock Grid.Row="0" Grid.Column="1" Margin="3" FontSize="12" FontWeight="Bold" Text="{Binding Price}" /> <!-- the panel below row --> <Grid Grid.Row="1" Grid.ColumnSpan="2" Margin="0,10,0,0"> <TextBox Margin="3" HorizontalAlignment="Left" Width="300" MinLines="6" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Text="{Binding Description}"/> </Grid> </Grid> </DataTemplate> </ListView.Resources> <ListView.ItemContainerStyle> <Style TargetType="ListBoxItem"> <!-- default item template when not selected --> <Setter Property="ContentTemplate" Value="{StaticResource DefaultItemTemplate}" /> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <!-- when selected change item template --> <Setter Property="ContentTemplate" Value="{StaticResource SelectedItemTemplate}" /> </Trigger> </Style.Triggers> </Style> </ListView.ItemContainerStyle> </ListView> </Grid> </Grid> It works like this:

The problem is that you can not change the width of the columns, or * , or a fixed width for all.
I need to set an individual width for each column or be able to change this width with the mouse. How to implement this feature in this example?