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

使用DevExpress GridControl.View无法实现基本的自动调整功能,grid,devexpress,width,Grid,Devexpress,Width,我有这样一个DevExpress网格: <dxg:GridControl ItemsSource="{Binding CarsData}" AutoPopulateColumns="True" ScrollViewer.HorizontalScrollBarVisibility="Auto"> <dxg:GridControl.View&

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


谢谢你的帮助

就像@Sebi在评论中说的那样,你应该调用
GridView
上的
BestFitColumns
。我以前是这样做的,但现在我避免使用它,因为它会大大降低网格的加载速度,特别是当您有一组重要的数据要显示时(它会遍历所有行以找到每列的最佳宽度)

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


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

在GridView.Hi上调用方法“BestFitColumns”。对不起,我不明白。我的XAML中没有任何GridView,所以不知道该放在哪里。谢谢你;到目前为止,我还没有一行代码,所以我希望保持这种状态。还惊讶于在Xaml中无法完成简单的ptorperty设置?