目前,我有一个绑定到DataTable的DataGridView。
dataGridView.SetDataSource(datatable);
数据表是从适配器填充的。
adapter.Fill(datatable);
我需要向来自另一个Query的DataGridView添加其他行。列是相同的。 我需要区分来自当前数据表和第二个数据表的行。为此,我将为2个查询中的每一个添加一个新字段以进行身份验证。 我创建了一个新类CustomDataGridViewRow,它派生自DataGridViewRow并更改其外观属性(颜色,字体,样式等)之一,以便用户区分它们。
public class CustomDataGridViewRow : DataGridViewRow
{
// set some appearance properties in order to the user to differ between the 2 type of rows
}
从目前开始,DataGridView绑定到DataTable,我不想改变这种行为。我虽然订阅RowAdded事件并根据标识列信息,将DataGridViewRow转换为CustomDataGridViewRow。 我尝试了以下但我不确定如何使它工作。
private void dataGridView_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
var row = (sender as DataGridView).Rows[e.RowIndex] as CustomDataGridViewRow;
}
有没有办法将DataGridViewRow转换为CustomDataGridViewRow?
更新: 我发现RowsAdded事件没有触发,因为我没有使用Rows.Add方法添加行。所以这是另一个问题。在找到将DataGridViewRow转换为CustomDataGridViewRow的方法之后,我需要找到一个可以执行此操作的地方。
答案 0 :(得分:0)
初始化RowTemplate
时,您必须指定dataGridView1.RowTemplate = new CustomDataGridViewRow();
:
CustomDataGridViewRow
然后,添加行时,会自动创建RowsAdded
,您无需处理StudentId
事件。