【问题标题】:How to add rows in devexpress GridControl just like we add rows in a normal datagridview. (WinForms C#)如何在 devexpress GridControl 中添加行,就像我们在普通 datagridview 中添加行一样。 (WinForms C#)
【发布时间】:2013-12-26 10:19:21
【问题描述】:
我想知道是否有一个选项可以在 devexpress GridControl 中添加行,就像我们在普通的 datagridview 中添加行一样。
在添加行时,我没有数据表或数据源。当应用程序加载时,我应该能够手动将行插入到 gridview 中。它可以像这样在普通的datagridview中完成:
dataGridView1.Rows.Add();
我正在使用 C# 编写 WinForms。
我在 devexpress gridview 中找不到执行此操作的选项。
谢谢
拉胡尔
【问题讨论】:
标签:
c#
winforms
gridview
datagridview
devexpress
【解决方案1】:
我不明白您为什么没有数据源以及阻止您创建数据源的原因。
实现您想要做的最正确的方法是构建您想要显示并影响的对象的List作为GridControl的数据源
List<MyClass> myClassList = new List<MyClass>();
// Here, you build your list as if you were to build your "rows"
// Finally, you can do this
gridControl1.DataSource = myClassList;
DevExpress 创建列并填充数据。
【解决方案2】:
为了能够在您的网格中添加行:
。应该设置你的 gridDataSource 属性(就像 Fares 写的那样)
。使您的视图可编辑
myView.OptionsBehavior.Editable = true;
。设置视图的 NewItemRowPosition 的位置
myView.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom;
【解决方案3】:
这可以做到,您必须使用 DataTable 将其分配为 DataSource - 看看这段代码:
Dim dataTable As DataTable = New DataTable
dataTable.Columns.Add(Me.GridColumn1.FieldName)
dataTable.Columns.Add(Me.GridColumn2.FieldName)
dataTable.Columns.Add(Me.GridColumn3.FieldName)
dataTable.Columns.Add(Me.GridColumn4.FieldName)
For Each pic In collectionToShow
Dim row As DataRow = dataTable.NewRow()
row(Me.GridColumn1.FieldName) = pic.Name
row(Me.GridColumn2.FieldName) = pic.Town
row(Me.GridColumn3.FieldName) = pic.Alias
row(Me.GridColumn4.FieldName) = pic.Somevalue
dataTable.Rows.Add(row)
Next
gcPcoSelection.DataSource = dataTable
不要忘记在 DevExpress-Designer 的 GridColumns 中指定一个 FieldName,否则 Fields 将是空的。这是 VB.net,但可以在 C# 中 1:1 完成,顺便说一句,我不明白 DevExpress 怎么能让简单的任务变得如此困难。