c# devexpress 中的Gridcontrol 添加行问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# devexpress 中的Gridcontrol 添加行问题相关的知识,希望对你有一定的参考价值。
此控件跟VS自带的控件有很大区别。我要实现的是像VS的ListView那样添加和获取数据。请帮忙下。具体就是手动写代码添加行,修改行,获取行,删除行。怎么实现呢? 谢谢。写的是winForm的程序。
1)向Form1中拖入一个GridControl,两个Button
2)后台代码
using System;using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication1
public partial class Form1 : Form
List<Student> studentList;
int studentId = 1;
public Form1()
InitializeComponent();
button1.Text = "添加新行";
button2.Text = "删除选定行";
BuildDataSource();
//为gridcontrol1准备数据源
private void BuildDataSource()
studentList = new List<Student>();
studentList.Add(new Student(studentId++)
Name = "张三", Course = "数学", Score = 100 );
studentList.Add(new Student(studentId++)
Name = "李四", Course = "数学", Score = 90 );
studentList.Add(new Student(studentId++)
Name = "王五", Course = "数学", Score = 91 );
//绑定!
gridControl1.DataSource = studentList;
//添加行
private void button1_Click(object sender, EventArgs e)
//添加行,实际上是向数据源(List<Student>集合)添加新的元素
Student stu = new Student(studentId++)
Name = "钱七", Course = "外语", Score = 34 ;
studentList.Add(stu);
//向数据源中新加行后,GridControl中自动会添加新行
gridControl1.RefreshDataSource();
//删除行
private void button2_Click(object sender, EventArgs e)
//获取所有被选行
int[] rowIds = gridView1.GetSelectedRows();
if (rowIds.Length == 0) return;
//删除
foreach (int rowId in rowIds)
int stuId = (int)gridView1.GetRowCellValue(rowIds[0], "Id");
Student stu = studentList.First(s => s.Id == stuId);
studentList.Remove(stu);
//从数据源中删除行后,GridControl中自动会删除对于的行
gridControl1.RefreshDataSource();
//----------------------------------------
//学生成绩类
class Student
public Student(int id)
Id = id;
//学号
public int Id get; private set;
//姓名
public string Name get; set;
//课程
public string Course get; set;
//成绩
public float Score get; set;
3)可直接在GridControl中修改行,不需要额外编程(除非你想校验输入数据的合法性)
------
总结: 对 Devexpress GridControl中增、删、修改,实际上是对数据源(数据集合)的增、删、修改。也就是说:对数据源修改会"反映"到界面的控件上。
以上是关于c# devexpress 中的Gridcontrol 添加行问题的主要内容,如果未能解决你的问题,请参考以下文章
devexpress chartcontrol 控件点击时获取x轴对应的值 最好c#代码
C# 控件 DevExpress的DateEdit设置显示日期和时间