gpt4 book ai didi

c# - devexpress gridView.Rows 和单元格?

转载 作者:行者123 更新时间:2023-11-30 23:20:12 25 4
gpt4 key购买 nike

目前我一直在使用Devexpress Datagridview。所以我需要将下面的代码转换成它的 Devexpress Datagridview 等价物:

        int id = e.RowIndex;
DataGridViewRow row = dgvproductMenu.Rows[id];


if (dgvproductMenu.Columns[e.ColumnIndex].Name == "Update")
{
product ObjP = new product
{
Product_id = row.Cells[2].Value.ToString(),
Name = row.Cells[3].Value.ToString(),
Description = row.Cells[4].Value.ToString(),
Price = Convert.ToDouble(row.Cells[5].Value),
Uom = row.Cells[6].Value.ToString(),
Quantity =Convert.ToInt32( row.Cells[7].Value.ToString()),
Tax = row.Cells[8].Value.ToString()
};
frmAddProduct fm = new frmAddProduct(ObjP);
fm.ShowDialog();
this.fillGrid();

我想用 Devexpress 扩展(gridview)来做。

最佳答案

我假设您正在尝试根据某个偶数捕获行数据,而您在问题中忽略了该偶数。假设您使用的是 POCO/域对象,方法是引入绑定(bind)源并使用绑定(bind)源的 .Current 属性来确定突出显示的行。

或者,如果您坚决反对, GridView 的 .GetRow(i) 事件将返回第 i 行中的对象。

从这里,您可以简单地将其转换为您的 POCO:

MyClrObject mo = (MyClrObject)bindSourceClr.Current;

MyClrObject mo = (MyClrObject)gridView1.GetRow(gridView1.FocusedRowHandle);

我认为这对于您的后续操作来说也是一种更简洁的方法,您可以在后续操作中提取列值。您可以使用 Intellisense 获取确切的属性,而不是假设任何关于列顺序的信息:

product ObjP = new product
{
Product_id = MyClrObject.ProductId,
Name = MyClrObject.Name,
Description = MyClrObject.Description
};

如果您正在使用数据表...请考虑切换到域对象。这并不总是最好的方法,但有很多优点。

关于c# - devexpress gridView.Rows 和单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39839502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com