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>

このグリッドは、固定幅の別のコンテナーに埋め込まれています。

簡単なことをしたいのですが、これを行う方法が見つかりません。

  • 列のコンテンツとヘッダーを自動調整します。
  • 列がグリッドのコンテナーよりも広くなる場合は、水平スクロール バーを表示します
  • 一部の列では、最大幅を設定します。

これが、私が望むように動作しない私のスタイルです。

<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。以前はそうしていましたが、特に表示する重要なデータのセットがある場合は、グリッドの読み込みが非常に遅くなるため、使用を避けています (すべての行を反復して各列の最適な幅を見つけます)。

各列の幅を手動で設定することをお勧めします (ユーザーは必要に応じて表示幅を調整できます)。

EDIT : もちろん、 の合計幅が の幅GridViewよりも大きい場合GridControl、水平スクロール バーが自動的にビューに設定されます。

于 2013-06-26T07:56:09.370 に答える