C# 向DevExpress GridView添加行
有人能帮我吗?为什么这对常规GridView来说如此简单却如此困难 我正在尝试以编程方式添加行。在普通的GridView中,我只调用GridView.Rows并从那里添加,但我在这里找不到该选项 我尝试创建一个DataTable,然后将其绑定到它,如下所示:C# 向DevExpress GridView添加行,c#,winforms,devexpress,C#,Winforms,Devexpress,有人能帮我吗?为什么这对常规GridView来说如此简单却如此困难 我正在尝试以编程方式添加行。在普通的GridView中,我只调用GridView.Rows并从那里添加,但我在这里找不到该选项 我尝试创建一个DataTable,然后将其绑定到它,如下所示: DataTable dt = new DataTable(); dt.Columns.Add("IP", Type.GetType("System.String")); dt.Columns.
DataTable dt = new DataTable();
dt.Columns.Add("IP", Type.GetType("System.String"));
dt.Columns.Add("Port", Type.GetType("System.String"));
dt.Columns.Add("Username", Type.GetType("System.String"));
dt.Columns.Add("Password", Type.GetType("System.String"));
dt.Columns.Add("Working?", Type.GetType("System.Boolean"));
for (int i = 0; i < 20; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "Test";
dr[1] = "Test";
dr[2] = "Test";
dr[3] = "Test";
dr[4] = true;
dt.Rows.Add(dr);
}
gcProxies.DataSource = dt;
DataTable dt=newdatatable();
Add(“IP”,Type.GetType(“System.String”);
Add(“Port”,Type.GetType(“System.String”);
Add(“Username”,Type.GetType(“System.String”);
Add(“Password”,Type.GetType(“System.String”);
Add(“Working?”,Type.GetType(“System.Boolean”);
对于(int i=0;i<20;i++)
{
DataRow dr=dt.NewRow();
dr[0]=“测试”;
dr[1]=“测试”;
dr[2]=“测试”;
dr[3]=“测试”;
dr[4]=真;
dt.Rows.Add(dr);
}
gcProxies.DataSource=dt;
所做的只是在GridControl中添加空行
有什么想法吗?您的问题是,您在设计器中创建了一个列,然后您的代码没有覆盖它 除了将数据表绑定到网格的数据外,还可以包含未绑定的列,这些列可以显示任意数据,也可以基于表达式显示数据。以下是创建未绑定列的基本示例: 在示例中,可以在设置数据源后添加未绑定列:
gcProxies.DataSource = dt;
// Create an unbound column.
DevExpress.XtraGrid.Columns.GridColumn unbColumn = gridView1.Columns.AddField("Total");
unbColumn.VisibleIndex = gridView1.Columns.Count;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
// Disable editing.
unbColumn.OptionsColumn.AllowEdit = false;
// Specify format settings.
unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
unbColumn.DisplayFormat.FormatString = "c";
gridView1.CustomUnboundColumnData += gridView1_CustomUnboundColumnData;
然后,下面是填充未绑定列的事件:
void gridView1_CustomUnboundColumnData(object sender,
DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
if (e.Column.FieldName == "Total" && e.IsGetData)
e.Value = 100;
}
这些示例应该可以让您开始定制精确的解决方案。我遇到了一个与您类似的问题,我通过添加
gcProxies.PopulateColumns();
还有一件事,数据源被贬低了,所以请改用ItemSource。我将一个DevEx GridControl拖到一个表单中,只将名称更改为gcProxies,并复制了您的代码,它成功了。您能展示创建GridControl及其GridView的代码吗?问题是我在GridControl中指定了列,一旦我删除它们,它就可以工作了。有可能从dataTable中获得行以及添加未绑定行吗?谢谢,虽然我用另一种方式修复了它,但这将在以后派上用场!