问题描述
- WPF DataGrid 列宽 自适应问题
-
DataGrid中绑定ComBox。编辑的时候下拉选择,如果先选择了一个字数比较多的选项,那么该列被拉长,再改一下,选择一个字数比较少的选项,那么这一列还是那么长。
解决方案
请描述具体些,看不懂问题
解决方案二:
<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中客户这一列还是选择“中华人民共和国上海卷烟厂”时的宽度,不知道图片能不能看到。
时间: 2024-08-02 18:15:15