c# - 如何在 DevExpress GridControl 中填充最后一列的宽度?

标签 c# wpf devexpress gridcontrol

我有 DevExpress GridControl,它有 7 列。 我试图将最后一列向右扩展,但没有任何反应。 相反,该列会拉伸(stretch)一段距离,并且在网格的右边缘,有一个没有名称的空列,无法拉伸(stretch)。

所以,我试着用谷歌搜索:我找到了一些答案,比如 this ,但这对我不起作用。

这里是 XAML 的和平,我删除了所有绑定(bind)。

<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();
}

请问,你能帮我调整最后一列(第 6 列)的宽度吗?

最佳答案

TableView.AutoWidth属性(property)是你要找的。你已经设置过了,但是你的Column6有错误。列的宽度不能设置为"*"。所以,我使用了您的代码,删除了 Width="*" 结果如下:

Result

关于c# - 如何在 DevExpress GridControl 中填充最后一列的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179278/

相关文章:

c# - 什么时候使用 CanFreeze?

c# - 表单数据集更新

c# - 将 silverlight 动态动画移动到 WPF

c# - Entity Framework -WPF/MVVM应用程序中的基础结构

c# - 在 C# Designer 中引用类常量?

c# - 在选定的数据源上找不到属性

c# - 如何在 MySQL 中执行此操作

c# - 使用属性来运行操作

javascript - 根级别的数据在 $.ajax 调用中无效

c# - 无法在 asp.net c# 中使用 ajax jquery 获取数据表单函数