使用DevExpress GridControl.View无法实现基本的自动调整功能

时间:2013-06-26 03:47:18

标签: grid devexpress width

我有一个像这样的DevExpress网格:

        <dxg:GridControl ItemsSource="{Binding CarsData}" 
                         AutoPopulateColumns="True"
                         ScrollViewer.HorizontalScrollBarVisibility="Auto">
            <dxg:GridControl.View>
                <dxg:TableView Style="{StaticResource DxTableViewStyle}"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn Header="Car Name"  FieldName="CarName" ReadOnly="False" />
                <dxg:GridColumn Header="Brand Name" FieldName="BrandName" ReadOnly="True"/>
            </dxg:GridControl.Columns>
        </dxg:GridControl>

此网格嵌入到另一个固定宽度的容器中。

我想做一些简单的事情但却找不到如何做到这一点,即:

  • 列自动调整其内容和标题。
  • 如果列比网格容器宽,显示水平滚动条
  • 对于某些列,请设置最大宽度。

这是我的风格,我不能像我想的那样工作:

<Style TargetType="dxg:TableView" x:Key="DxTableViewStyle">
    <Setter Property="AllowBestFit" Value="True"/>
    <Setter Property="BestFitArea" Value="All"/>
    <Setter Property="BestFitMode" Value="VisibleRows"/>
    <Setter Property="AutoWidth" Value="False"/>
    <Setter Property="HorizontalScrollbarVisibility" Value="Auto"/>
</Style>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

就像@Sebi在评论中所说,你应该拨打BestFitColumns上的GridView。我曾经这样做但现在我避免使用它,因为它减慢了网格的加载速度,特别是如果你有一组重要的数据要显示(它遍历所有行以找到每列的最佳宽度)。

我建议您手动设置每列的宽度(如果用户可以调整可见宽度)。

编辑:当然,如果GridView的总宽度大于GridControl的宽度,水平滚动条将自动设置为视图。