C# 用一个List把数据装起来,绑定到DEV控件的GridControl上,当直接通过单元格编辑数据,回传到List,再按下保存按钮会 getlist出来到新的GridControl上,并且只能更改第4列和第5列
时间: 2024-02-11 12:06:23 浏览: 60
C#利用数据绑定控件修改数据
好的,你的问题是如何实现将一个装有数据的List绑定到DEV控件的GridControl上,当通过单元格编辑数据时,回传到List中,并且只能更改第4列和第5列的数据。然后再按下保存按钮将List中的数据显示到另一个GridControl上。我可以给你提供一些思路和代码示例,帮助你实现这个功能。
首先,将List绑定到GridControl上可以通过以下代码实现:
```csharp
List<MyData> dataList = GetData(); // 获取装有数据的List
gridControl1.DataSource = dataList; // 将List绑定到GridControl上
```
其中,MyData是你的数据类型,GetData()是获取数据的自定义方法。
然后,如何将通过单元格编辑的数据回传到List中呢?可以通过GridControl的CellValueChanged事件来实现,代码示例如下:
```csharp
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.RowHandle < 0) return; // 新增行不处理
if (e.Column.FieldName == "Col4" || e.Column.FieldName == "Col5")
{
MyData data = gridView1.GetRow(e.RowHandle) as MyData; // 获取当前行的数据对象
if (data != null)
{
// 根据列名将单元格的值赋给数据对象的属性
if (e.Column.FieldName == "Col4")
{
data.Col4 = Convert.ToInt32(e.Value);
}
else if (e.Column.FieldName == "Col5")
{
data.Col5 = Convert.ToDouble(e.Value);
}
}
}
}
```
其中,Col4和Col5是第4列和第5列的列名,需要根据你的实际情况进行调整。
最后,如何将List中的数据显示到另一个GridControl上呢?可以在保存按钮的Click事件中调用GetList方法获取List,然后将List绑定到另一个GridControl上,代码示例如下:
```csharp
private void btnSave_Click(object sender, EventArgs e)
{
List<MyData> dataList = gridControl1.DataSource as List<MyData>; // 获取绑定到GridControl的List
if (dataList != null)
{
// 只保留Col4和Col5两列的数据
List<MyData> newDataList = new List<MyData>();
foreach (MyData data in dataList)
{
newDataList.Add(new MyData { Col4 = data.Col4, Col5 = data.Col5 });
}
gridControl2.DataSource = newDataList; // 将List绑定到另一个GridControl上
}
}
```
以上是一个实现思路和代码示例,具体实现还需要根据你的具体需求进行调整。希望可以帮助到你!
阅读全文