1

我有一个像这样的 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>

这个网格被嵌入到另一个具有Fixed Width的容器中。

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

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

这是我无法像我想要的那样工作的风格:

<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>

谢谢您的帮助!

4

1 回答 1

0

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

我建议您手动设置每列的宽度(用户可以根据需要调整可见宽度)。

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

于 2013-06-26T07:56:09.370 回答