2 shayne97 shayne97 于 2014.08.14 17:37 提问

WPF DataGrid 列宽 自适应问题

DataGrid中绑定ComBox。编辑的时候下拉选择,如果先选择了一个字数比较多的选项,那么该列被拉长,再改一下,选择一个字数比较少的选项,那么这一列还是那么长。
CSDN移动问答CSDN移动问答

CSDN移动问答

2个回答

hirochen
hirochen   Rxr 2014.08.14 18:00

请描述具体些,看不懂问题

shayne97
shayne97 请看下面的描述。
3 年多之前 回复
shayne97
shayne97   2014.08.14 22:35
<DataGridComboBoxColumn x:Name="colCustomer" Header="客户" CanUserSort="False"
                                    SelectedValueBinding="{Binding Path=CustomerID, UpdateSourceTrigger=PropertyChanged}"
                                    DisplayMemberPath="Name" SelectedValuePath="ID"
                                    SelectedItemBinding="{Binding Path=SelectedCustomer, UpdateSourceTrigger=PropertyChanged}">
                <DataGridComboBoxColumn.EditingElementStyle>
                    <Style TargetType="ComboBox">
                        <Setter Property="ItemsSource" Value="{Binding Path=DataContext.CustomerItems,ElementName=MainWindow}" />
                    </Style>
                </DataGridComboBoxColumn.EditingElementStyle>
                <DataGridComboBoxColumn.ElementStyle>
                    <Style TargetType="ComboBox">
                        <Setter Property="VerticalContentAlignment" Value="Center"/>
                        <Setter Property="ItemsSource" Value="{Binding Path=DataContext.CustomerItems,ElementName=MainWindow}" />
                    </Style>
                </DataGridComboBoxColumn.ElementStyle>
            </DataGridComboBoxColumn>

以上是代码,就是说客户这一列,我编辑的时候下拉选择:第一项是“浙江中烟”,那么我选择完成之后,在DataGrid中显示就是“浙江中烟”,这一列的宽度也就是“浙江中烟”4个字的宽度,如果第二项是“中华人民共和国上海卷烟厂”,选择该项之后,那么显示在DataGrid中就是要宽多了么,但是我再反过来选择“浙江中烟”,但是DataGrid中客户这一列还是选择“中华人民共和国上海卷烟厂”时的宽度,不知道图片能不能看到。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!