c# - 如何通过更改 datagridview 选定索引行中的值来更新列表?
问题描述
我在一个名为车辆的类中有一个列表。这包含它自己的列表,称为活动,其中包含也是类的不同活动的实例。当我将活动添加到特定车辆活动列表时,它会添加该活动的新实例并刷新 datagridview 以显示活动列表。我想做的是单击 datagridview 中的一行并填充一些文本框,然后有一个按钮来更新列表中的活动对象。
这就是我检索列表的方式:
private Vehicle _activeVehicle; //Where _activeVehicle is set prior as a specific instance of a vehicle
var list = _activeVehicle.ActivityList;
这是添加到活动列表中的我的活动的类:
public class Relocate : Activity
{
private string _distance;
private string _type;
private string _name;
private string _cost;
private DateTime _date;
private string _start;
public string Type { get => _type; set => _type = value; }
public string Name { get => _name; set => _name = value; }
public string Cost { get => _cost; set => _cost = value; }
public DateTime Date { get => _date; set => _date = value; }
public string Distance { get => _distance; set => _distance = value; }
public string Start { get => _start; set => _start = value; }
}
当单击 datagridview 中的项目时,我有一个行单击方法,该方法将该行中每个单元格的值添加到一些文本框中。目前我直接获取如下所示的值,但理想情况下,我想从列表中选择实际对象来填充文本框,但我不确定如何根据 datagridview 单元格单击来执行此操作。这是我的做法:
DataGridView table = relocationDataGridView;
table.ClearSelection();
DataGridView.HitTestInfo index = table.HitTest(e.X, e.Y);
table.Rows[index.RowIndex].Selected = true;
IndexRelocate = index.RowIndex;
DataGridViewRow dataGrid = table.Rows[index.RowIndex];
switch (index.RowIndex)
{
case -1:
{
MessageBox.Show("This is not a record", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
default:
{
relocationCostTextBox.Text = dataGrid.Cells[0].Value.ToString();
relocationStartTextBox.Text = dataGrid.Cells[1].Value.ToString();
relocationTypeTextBox.Text = dataGrid.Cells[2].Value.ToString();
relocationEndTextBox.Text = dataGrid.Cells[3].Value.ToString();
relocationDistanceTextBox.Text = dataGrid.Cells[4].Value.ToString();
relocationDateTimePicker.Value = (DateTime)dataGrid.Cells[5].Value;
break;
}
}
重定位是datagridview中的activity,其中class的属性为Cost, Start, Type, End, Distance, Date
我想做的是更新列表中的特定对象,_activeVehicle
通过单击datagridview,在文本框中输入新的详细信息,然后单击更新按钮来更新列表所属的对象,但我不确定从哪里开始编写代码这个。下面的代码使用所选行的当前详细信息填充文本框,但如果它使用该行作为参考并从属于的列表中提取数据会更好_activeVehicle
。我怎样才能做到这一点?
解决方案
推荐阅读
- swift - 如何在 Swift 中创建可以通过另一种类型隐式返回的类型?
- python - 如何将系列中具有“无”值的熊猫类型转换为布尔值?
- database - 如果 OUT 变量数据类型之一是 oracle.sql.array,如何调用存储过程
- tableau-api - Tableau 数据计算将数据从值分配到同一列中的其他值
- mongodb - 容器启动后在 Docker 上运行 mongorestore
- go - Marshal AppleID 的公钥到 rsa.PublicKey
- python - 无法使用 cython 中的类列表中的类的属性
- javascript - 导航在控制台中取消,可能是什么问题?
- redirect - IIS 重写规则不传递参数
- microsoft-graph-api - DisplayName 对 Teams 频道的图形 API 查询不返回任何结果