257-C# UIDataGridView 列表加载,单元格取数,属性匹配,更新表格内容

时间:2024-01-20 21:50:08

C# 窗体,UIDataGridView中,列宽度自适应父容器:

属性Columns,打开集合:
列属性:AutoSizeMode=Fill

UIDataGridView中,列的数据属性名,和list匹配:
属性Columns,打开集合:
列属性:DataPropertyName,和list的key对应。

UIDataGridView中,加载数据:

BindingList<TaxServiceCompanyUpdateTask> taskListSource = new BindingList<TaxServiceCompanyUpdateTask>();
foreach(TaxServiceCompanyUpdateTask item in taskList)
{
    taskListSource.Add(item);
}
this.任务列表.DataSource = taskListSource;

其中,TaxServiceCompanyUpdateTask的属性,和列属性需要对应。
对于不需要显示的属性,可以添加列,设置为不可见。

UIDataGridView单元格点击事件CellClick:

// 获取当前行的索引  
int currentRowIndex = e.RowIndex;
//行某个单元格的内容
object curPageObj=任务列表.Rows[currentRowIndex].Cells["curPage"].Value;

列表的刷新,更新某个单元格的值(待确定):

// 获取点击的行
DataGridViewRow selectedRow = 任务列表.Rows[e.RowIndex];

// 获取按钮列所在的单元格
DataGridViewButtonCell buttonCell = selectedRow.Cells["ops"] as DataGridViewButtonCell;
if (buttonCell != null)
{
    // 在这里修改按钮的文字
    buttonCell.Value = "执行中";
    //buttonCell.ReadOnly = true;
    任务列表.Refresh();
}

// 获取数据源的行
DataRowView rowView = 任务列表.Rows[e.RowIndex].DataBoundItem as DataRowView;
if (rowView != null)
{
    // 获取数据源中的行
    DataRow row = rowView.Row;

    // 修改数据源中的值
    row[e.ColumnIndex] = "执行中";

    // 刷新 DataGridView 显示
    任务列表.Refresh();
}

以上代码无效果。