Этот столбец не поддерживает "*" в качестве аргумента ширины, поэтому вы не можете легко сказать - заполните остальные ...
Что вам нужно сделать, это подключиться к событию SizeChanged объекта ListView и выполнить вычисления. Например, в вашем случае, если бы мы хотели, чтобы первые два столбца занимали по 40 каждый, а третий столбец - по остальным, вы бы сделали это так:
private void ListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
ListView listView = sender as ListView;
GridView gView = listView.View as GridView;
var workingWidth = listView.ActualWidth - SystemParameters.VerticalScrollBarWidth;
gView.Columns[0].Width = 40;
gView.Columns[1].Width = 40;
gView.Columns[2].Width = workingWidth - 80;
}
EDIT
Для пробелов (слева и справа) в строке заголовка вы хотите изменить ColumnHeaderContainerStyle следующим образом:
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="Black" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Margin" Value="-2,0,-2,0" />
<Setter Property="Padding" Value="0" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</GridView.ColumnHeaderContainerStyle>
Поэтому убедитесь, что вы просто уменьшаете поле на -2 с каждой стороны.