DataGridTextColumn内的组合框没有占用它的父宽度

本文关键字:组合 DataGridTextColumn | 更新日期: 2023-09-27 17:49:34

<DataGrid AutoGenerateColumns="False" Name="m_gridControl">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="columnCategory" Width="10*">
            <DataGridTextColumn.Header>
                <ComboBox Width="{Binding ElementName=columnCategory, Path=Width}" />
            </DataGridTextColumn.Header>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

在这段代码中,我的Combobox没有完全占据我的DataGridTextColumn的宽度。我如何设置属性来实现这一点?

DataGridTextColumn内的组合框没有占用它的父宽度

尝试替换

<ComboBox Width="{Binding ElementName=columnCategory, Path=Width}" />

<ComboBox Width="{Binding ElementName=columnCategory, Path=ActualWidth}" />

你的问题应该得到解决。

Width在WPF中是一个指示,而ActualWidth是元素被渲染后的实际宽度。

编辑:为了避免combobox上的裁剪,你需要添加一个转换器(见这个答案)来删除一些像素到它的宽度。如果你需要更多关于如何做到这一点的帮助,这里是一个示例项目,我做了演示。