将 "DataBindingComplete" 事件处理程序与自定义输入相关联
Linking "DataBindingComplete" event handler with custom input
我在一个 Windows Forms 项目中工作,我必须动态创建 DataGridView,用一个 DataTable 填充它们,然后根据另一个 DataTable 格式化单元格。代码是这样的:
my_forms_function(){
DataGridView dgv = new DataGridView();
DataTable values = get_values();
DataTable formatting = get_formatting();
dgv.DataSource = values;
format_grid(dgv, formatting);
WindowsForm.Add(dgv);
}
我的问题是 format_grid 方法在绑定 DataSource 后完全配置 DataGridView 之前被调用,所以我无法在格式化期间像我需要的那样引用单个单元格。所以我需要link format_grid 方法(或其功能)到DataBindingComplete 事件。我一直在四处搜索并找到了 this and this 之类的东西。
Lambda 语句似乎是可行的方法,但我无法使其工作。总是有某种语法错误阻止我编译。谁能解释一下如何做到这一点?
我相信您已经走上正轨,只是语法正确而已。尝试:
dgv.DataBindingComplete += (sender, e) => format_grid(dgv, formatting);
我没有完整的示例来复制您的代码,但是通过以下简单示例,它可以工作:
string hello = "Hello World!";
DataTable values = GetValues();
dataGridView1.DataSource = values;
dataGridView1.DataBindingComplete += (sender, e) => this.DoStuff(hello);
private void DoStuff(string text)
{
Console.WriteLine(text);
}
我在一个 Windows Forms 项目中工作,我必须动态创建 DataGridView,用一个 DataTable 填充它们,然后根据另一个 DataTable 格式化单元格。代码是这样的:
my_forms_function(){
DataGridView dgv = new DataGridView();
DataTable values = get_values();
DataTable formatting = get_formatting();
dgv.DataSource = values;
format_grid(dgv, formatting);
WindowsForm.Add(dgv);
}
我的问题是 format_grid 方法在绑定 DataSource 后完全配置 DataGridView 之前被调用,所以我无法在格式化期间像我需要的那样引用单个单元格。所以我需要link format_grid 方法(或其功能)到DataBindingComplete 事件。我一直在四处搜索并找到了 this and this 之类的东西。
Lambda 语句似乎是可行的方法,但我无法使其工作。总是有某种语法错误阻止我编译。谁能解释一下如何做到这一点?
我相信您已经走上正轨,只是语法正确而已。尝试:
dgv.DataBindingComplete += (sender, e) => format_grid(dgv, formatting);
我没有完整的示例来复制您的代码,但是通过以下简单示例,它可以工作:
string hello = "Hello World!";
DataTable values = GetValues();
dataGridView1.DataSource = values;
dataGridView1.DataBindingComplete += (sender, e) => this.DoStuff(hello);
private void DoStuff(string text)
{
Console.WriteLine(text);
}