我有一个Form1,里面有一个DataGridView2。
我想在另一个类(Class1)中使用这个DataGridView,它将在我的DataGridView中插入一些从数据库中获取的数据。 (在这个Class1中我连接到这个数据库)。 我的Class1的代码,用于从数据库中提取数据:
var context = new dbGAPEntities();
BindingSource bi = new BindingSource();
bi.DataSource = context.clienti.ToList();
dataGridView2.DataSource = bi;
dataGridView2.Refresh();
但是我不能这样做,因为在这个类中,我没有dataGridView2。 如何在我的class1中引用Form1中的DataGridView?
我希望我的问题很明确。
我尝试了与此问题相关的其他问题,但我没有任何帮助。
答案 0 :(得分:1)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Class1.BindGridDataSource(this.dataGridView2);
}
}
public static class Class1
{
public static void BindGridDataSource(DataGridView grid)
{
// Bind grid to data source
}
}
答案 1 :(得分:1)
一个选项是将DataGridView作为ref参数传递给你。但是我建议密切关注您的架构,不应该在您的数据访问层中引用用户界面(DataGridView)。
GridBind(ref DataGridView1);
GridBind(ref DataGridView2);
你可以执行GridBind方法:
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("from", "RegisterActivity");
startActivity(intent);
答案 2 :(得分:0)
您可以向类中添加一个填充DataGridView的函数,如下所示:
public void FillDataGridView(DataGridView dgv)
{
var context = new dbGAPEntities();
BindingSource bi = new BindingSource();
bi.DataSource = context.clienti.ToList();
dgv.DataSource = bi;
dgv.Refresh();
}
并将其称为:
class1.FillDataGridView(this.DataGridView2);
或者你可以像这样在你的类中添加一个属性:
public BindingSource BindSrc
{
get
{
var context = new dbGAPEntities();
BindingSource bi = new BindingSource();
bi.DataSource = context.clienti.ToList();
return bi;
}
}
并在您的表格中:
dataGridView2.DataSource = class1.BindSrc;
dataGridView2.Refresh();