2017-05-25 9 views
7

私は7つの列を持つDevExpress GridControlを持っています。 最後の列を右側に展開しようとしましたが、何も起こりません。 代わりに、列がある距離だけ伸びます。グリッドの右端には、名前のない空の列があり、伸びることはできません。DevExpress GridControlの最後の列の幅を埋める方法は?

私はgoogleにしようとしています:thisのような回答がありますが、それは私のためには機能しません。

ここではXAMLのいくつかの平和、私はすべてのバインディングを削除します。

<dxg:GridControl Grid.Row="0" 
       x:Name="dgGrid" 
       VerticalAlignment="Stretch" 
       HorizontalAlignment="Stretch" 
       dx:ThemeManager.ThemeName="Seven" 

       ScrollViewer.CanContentScroll="True" 
       ScrollViewer.HorizontalScrollBarVisibility="Auto" 
       ScrollViewer.VerticalScrollBarVisibility="Auto" 
       > 

    <dxg:GridControl.View> 
     <!--region #RowCellMenuCustomization--> 
     <dxg:TableView x:Name="view" AutoWidth="True" NavigationStyle="Cell"> 
      <dxg:TableView.RowCellMenuCustomizations> 
       <dxb:BarButtonItem Content="Link" 
           ItemClick="CellDataItem_Link_ItemClick" 
           ></dxb:BarButtonItem> 

       <dxb:BarButtonItem Content="UnLink" 
           ItemClick="CellDataItem_UnLink_ItemClick" 
           ></dxb:BarButtonItem> 
      </dxg:TableView.RowCellMenuCustomizations> 
     </dxg:TableView> 
     <!--endregion #RowCellMenuCustomization--> 
    </dxg:GridControl.View> 

    <dxg:GridControl.Columns> 

     <dxg:GridColumn Header="Column0" 
        AllowEditing="False" 
        HorizontalHeaderContentAlignment="Stretch" 
        FixedWidth="True" 
        AllowResizing="True" 
        MinWidth="80" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column1" 
        AllowEditing="False" 
        HorizontalHeaderContentAlignment="Stretch" 
        FixedWidth="True" 
        AllowResizing="True" 
        MinWidth="80" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column2" 
        AllowEditing="False" 
        HorizontalHeaderContentAlignment="Stretch" 
        AllowResizing="True" 
        FixedWidth="True" 
        Visible="False" 
        MinWidth="80" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column3" 
        HorizontalHeaderContentAlignment="Center" 
        AllowEditing="False" 
        Width="35" 
        FixedWidth="True" 
        AllowResizing="False" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column4" 
        HorizontalHeaderContentAlignment="Center" 
        FixedWidth="True" 
        AllowEditing="False" 
        AllowResizing="False" 
        Width="35" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column5" 
        HorizontalHeaderContentAlignment="Stretch" 
        FixedWidth="True" 
        AllowEditing="False" 
        AllowResizing="True" 
        MinWidth="170" 
        ></dxg:GridColumn> 

     <dxg:GridColumn Header="Column6" 
        HorizontalHeaderContentAlignment="Stretch" 
        AllowEditing="False" 
        AllowResizing="True" 
        Width="*" 
        Fixed="None" 
        BestFitMode="Default" 
        BestFitArea="All" 
        MinWidth="130" 
        FixedWidth="False" 
        /> 

    </dxg:GridControl.Columns> 
</dxg:GridControl> 
同時に

Here example of my GridControl

、私はGRIDCONTROLがロードされたときに動作しますBestFitメソッドを使用:へ

private void Grid_Loaded(object sender, RoutedEventArgs e) 
{ 
    ((TableView)this.view).BestFitArea = BestFitArea.All; 
    var visibleColumns = ((TableView)this.view).VisibleColumns; 
    ((TableView)this.view).BestFitColumns(); 
} 

、あなたは私が最後の列にフィットするように助けることができるしてください(Column6)幅グリッドの終わり?

+0

autogenerateColumns依存関係プロパティはありますか? それがある場合は、それをfalseに設定してチェックすることができます。 –

+0

@AbhinavSharma、bo、私はAutogenerateColumnsプロパティを使用しません。私の名前は 'Column0'のようなものではありません。Name、Cityなどです。 –

答えて

6

TableView.AutoWidthプロパティはあなたが探しているものです。既に設定していますが、Column6にエラーがあります。列のWidth"*"に設定できません。だから、私は、あなたのコードを使用Width="*"を削除し、ここでの結果である:実際には

Result

2

、あなたが列幅として「*」の設定、16.1または新しいバージョンを使用している場合は、正常に動作するはずです。私はあなたのコードに基づいてテストプロジェクトを作成し、スニペットいる:enter image description here

GridColumn.Widthプロパティに「*」の使用は、機能サイジングプロポーショナル列を可能にします、しかし、それは、古いバージョンでは使用できません。この機能の詳細については、Columns Layout and Widthを参照してください。

古いバージョンの場合は、AutoWidthオプションを有効にします。

+0

私は16.2のバージョン –

+0

@Admiral Landを持っています。私はあなたの説明に基づいてテストプロジェクトを作成しました。最後の列が適切に伸びているようです。このコードがあなたの側で動作しないのは奇妙です。 –

関連する問題