Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用自定义对象将数据绑定到datagridview-列标题文本_C#_Data Binding_Datagridview - Fatal编程技术网

C# 使用自定义对象将数据绑定到datagridview-列标题文本

C# 使用自定义对象将数据绑定到datagridview-列标题文本,c#,data-binding,datagridview,C#,Data Binding,Datagridview,我有一个绑定到DataGridView的对象列表(PrintJob)。这是PrintJob对象的简化版本(我不想让你完全厌烦!!): 我列出这些对象并绑定到dataGridView,如下所示: dataGridView1.DataSource = uiModel.GetPrintJobs(); 到目前为止一切都好吗 除列标题外,所有内容都显示良好的显示效果,列标题与我的对象中的属性名称完全相同,即“PagesToPrint”出现在列标题中,理想情况下,我希望它在标题文本中显示“Pages t

我有一个绑定到DataGridView的对象列表(PrintJob)。这是PrintJob对象的简化版本(我不想让你完全厌烦!!):

我列出这些对象并绑定到dataGridView,如下所示:

dataGridView1.DataSource = uiModel.GetPrintJobs();

到目前为止一切都好吗

除列标题外,所有内容都显示良好的显示效果,列标题与我的对象中的属性名称完全相同,即“PagesToPrint”出现在列标题中,理想情况下,我希望它在标题文本中显示“Pages to Print”

如何让列标题文本显示更具可读性的内容?我猜是基于属性名

干杯

 [DisplayName("Pages to print")]
 public long PagesToPrint {...}

etc(代码文件顶部的
使用System.ComponentModel;

是的,您可以将设计器与绑定的数据源一起使用。只需在设计器中设置每列的“DataPropertyName”属性值


例如,对于第1列,“DataPropertyName”属性值将是“PageStopPrint”,而“HeaderText”属性将是您希望显示为列标题的实际文本(“要打印的页面”)。

您还可以使用属性预设列宽等内容吗?不,您不能。您可以控制一些事情,例如类型转换器(用于呈现和解析值),但仅此而已。(对不起,最后一个问题)我是否能够绑定到已使用设计器设置的列?我不完全理解这个问题;但是,如果设计者已经添加了列,则不会使用[DisplayName]。如果您使用AutoGenerateColumns,它们将是(我相信新的设计师使用时会选择[DisplayName])。但是,如果您想要一种可以针对DataGridView运行的方法来修复列标题,那么实现自动化并不困难(如果您需要,请告诉我-我猜是10行)。嗨-抱歉,刚刚从意大利的hols回来。我的意思是,我已经使用VS Forms Designer按照我喜欢的顺序和格式设置了列。我只是想知道您是否可以绑定到这些手动创建的列-我猜您必须使用dataGridView的ColumnAdded事件并进行一些复杂的操作-不确定所有这些是否首先否定了数据绑定的好处???干杯
 [DisplayName("Pages to print")]
 public long PagesToPrint {...}