2017-05-25 138 views
7

我有DevExpress GridControl有7列。 我試圖將最後一列擴展到右側,但沒有任何反應。 而是,該列伸展一段距離,並在網格的右邊緣有一個沒有名稱的空列,無法拉伸。如何在DevExpress GridControl中填充最後一列的寬度?

所以,我嘗試谷歌它:我找到一些答案像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

與此同時,我用BestFit方法,當GridControl加載其工作原理:

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依賴項屬性? 如果有,那麼你可以設置它爲假,並檢查。 –

+0

@AbhinavSharma,博,我不使用任何AutogenerateColumns屬性。我的名字不像'Column0'那樣:姓名,城市等等。 –

回答

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,我已經根據你的描述創建了一個測試項目,看起來最後一列已經適當延伸了。這很奇怪,這段代碼不適合你。 –