wpf datagrid-WPF DataGrid 列宽 自适应问题

问题描述

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

wpf datagrid-WPF DataGrid 列宽 自适应问题的相关文章

重写datagrid(禁止对列宽进行拖拽)

datagrid Public Class notCResizegrid     Inherits System.Windows.Forms.DataGrid   #Region " Windows 窗体设计器生成的代码 "       Public Sub New()         MyBase.New()           '该调用是 Windows 窗体设计器所必需的.         InitializeComponent()           '在 Initialize

ListView列宽自适应,设置ListView.Column[0].Width := -1;

使用TListView列表显示内容,如果列内容过长,就会显示成'XXX-'形式,此时如果双击列标题,列宽将变为自适应.用代码设置如下: 1.设置ListView.Column[0].Width := -1;//列宽根据列内容自适应,此时保证列内容都可见. 2.设置ListView.Column[0].Width := -2;//列宽根据列标题自适应,此时保证列标题可见.

技术总结:自动扩张WPF树型表格列宽

问题描述     今天测试人员提了一个易用性的BUG,主要是说系统目前使用的树型控件不支持自动扩张列的宽度.其实客户那边已经对这个问题提了多次,不过由于对WPF只是入门级,所以一直都没改.这两天项目比较闲,就花了些时间把这个问题改了.原问题如下:   图1 问题描述   背景     树型控件在GIX4系统中已经被大量使用.这个控件是一年前其它同事在网上搜索到,再引入的.     一开始的时候,要解决这个问题,想到的最直接的方案是这样的:找到第一列中的Expander控件(加号:),然后监听它的

Delphi中ListView列宽改变时的消息响应

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls,CommCtrl; type PHD_NOTIFY=^HD_NOTIFY; TForm1 = class(TForm) ListView1: TListView; Button1: TButton; procedure FormDestro

wpf c# 获取datagrid选中行的某列的值

问题描述 wpf c# 获取datagrid选中行的某列的值 wpf c# 获取datagrid选中行的某列的值========================== 解决方案 dataGridView1.CurrentRowdataGridView1.CurrentCell 解决方案二: gridview.GetFocusedDataRow[""colname""] 解决方案三:

wpf columnwidth设为auto 其中的gridview列宽会有问题

问题描述 wpf columnwidth设为auto 其中的gridview列宽会有问题 本人wpf小菜鸟 而且刚注册论坛没有币 还望各位大神帮帮忙 如图 三列的每一列我都想width =auto,但是gridview的列宽就变成这样了.问题出在哪里呢?应该怎么处理 <Grid Name=""MainGrid""> <Grid.ColumnDefinitions> <ColumnDefinition Width=""

WPF 自带Datagrid编辑后无法更新数据源的问题

原文  WPF 自带Datagrid编辑后无法更新数据源的问题 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Grid.Row="1" Height="274" HorizontalAlignment="Left" Margin="12,10,0,0" Name="dataGrid2" VerticalAlignment="To

WPF 无法添加DataGrid

问题描述 WPF 无法添加DataGrid 就这个问题,我想把test拖到UserControl中,然后就提示如图的问题.上面的diagnosis$名称的文件开始也是这个问题,后来莫名其妙就能拖进来了.急啊,请教! 解决方案 WPF DataGrid 控件默认空白行无法显示

C# WinForm中DataGrid列设置(列宽/列标题等)

datagrid    写winForm的程序,难免要用DataGrid,自然也就需要设置列格式啊,标题之类的!  但是经常列标题设置后没反应,好恶心!         这几天做了个程序,自己研究了一下,主要有有一个地方要注意!那就是下面代码中的"红色" 字部分!以下代码不需要在控件上做任何设置,照着写就能搞定!以前好象还有人花5000分买 这个问题的解决答案的,哎,怎么我没碰上啊! private void frmLog_Load(object sender, System.Even