WPF - Listview数据绑定列宽问题

时间:2009-12-16 18:33:52

标签: wpf data-binding listview wpf-controls

使用.Net3.5下面的xaml -

<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的新手,我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

请删除Width的自动属性。您可以手动设置width.Like Width =“100”。 我就像这个问题一样取出并通过手动输入宽度来解决。