DataGridTextColumn中的Combobox不占用它的父Width

时间:2014-03-11 13:54:33

标签: c# wpf data-binding

<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的宽度。 如何设置属性以实现此目的?

1 个答案:

答案 0 :(得分:0)

尝试替换

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

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

你的问题应该解决了。

WPF中的

Width表示,ActualWidth是元素渲染后的实际宽度。

编辑:要避免combobox上的裁剪,您需要添加转换器(请参阅this answer)以删除一些像素的宽度。如果您需要有关如何操作的更多帮助,可以使用sample project I made来证明这一点。