Ниже дано xaml с использованием .Net3.5 -
<ListView Name="RawData" AlternationCount="2" ItemsSource="{Binding}"
ScrollViewer.VerticalScrollBarVisibility="Visible" Grid.Row="1"
Grid.ColumnSpan="4"
IsSynchronizedWithCurrentItem="True"
sorter:GridViewSort.AutoSort="True"
sorter:GridViewSort.ShowSortGlyph="False" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="LightGray"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="Date" DisplayMemberBinding="{Binding Path=GetDate}"
Width="Auto" sorter:GridViewSort.PropertyName="GetDateTime"/>
<GridViewColumn Header="Time" DisplayMemberBinding="{Binding Path=GetTime}"
Width="Auto" sorter:GridViewSort.PropertyName="GetDateTime"/>
<GridViewColumn Header="Scan Time" DisplayMemberBinding="{Binding Path=ScanTimeSec}"
sorter:GridViewSort.PropertyName="ScanTimeSecond" Width="Auto"/>
<GridViewColumn Header="Ping Time" DisplayMemberBinding="{Binding Path=PingTimeSec}"
sorter:GridViewSort.PropertyName="PingTimeSec" Width="Auto" />
<GridViewColumn Header="Fault Messages"
DisplayMemberBinding="{Binding Path=ErrorMessages}"
sorter:GridViewSort.PropertyName="ErrorMessages" Width="Auto"/>
</GridView>
</ListView.View>
</ListView>
Моя проблема с первым и последним столбцами. Они не меняют размеры автоматически, чтобы соответствовать содержимому данных. Я мог бы использовать фиксированную ширину, но это вызовет проблемы позже в проекте, когда я позволю пользователям регулировать размер шрифта.
Кажется, что каждое решение, которое я нашел, это установить width = "auto", и WPF сделает это за вас. Однако этого не происходит. Так что, как новичок в WPF, я не уверен, что делать.