我要表格。
首先有 datagridview 和BindingList<CustomObject>
as DataSource
。
DataSource
其次应该从第一个表单中添加/删除/更新。
我怎样才能做到这一点?修改等发生在button_Click(object sender, EventArgs e)
secondform 上。我可以传递BindignList<>
给构造函数,但我不能进一步传递ref
给SecondForms()
button_Click()
我要表格。
首先有 datagridview 和BindingList<CustomObject>
as DataSource
。
DataSource
其次应该从第一个表单中添加/删除/更新。
我怎样才能做到这一点?修改等发生在button_Click(object sender, EventArgs e)
secondform 上。我可以传递BindignList<>
给构造函数,但我不能进一步传递ref
给SecondForms()
button_Click()
您可以做的是在 form2 中创建一个 form1 将订阅的事件。把事情分开。我不知道您是如何构建 Form1 和 Form2 的,所以我只举一个例子。
class Form2 : Something
{
public event NotifySubscriberEventHandler NotifySubscriberEvent ;
public void button_Click(object sender, EventArgs e)
{
var handler = NotifySubscriberEvent ;
if( handler != null)
{
handler(this,EventArgs.Empty) ;
}
}
}
class Form1
{
public BindingList<T> MyBindingList {get;set;} //
public void CreateForm2()
{
Form2 form2 = new Form2() ;
form2.NotifySubscriberEvent += OnButtonClicked;
}
public void OnButtonClicked(object source, EventArgs e)
{
//Do Something when notified
MyBindingList.Add(...)
}
}
您必须创建一个 NotifySubsubscriberEventHandler 委托。这里: http ://www.akadia.com/services/dotnet_delegates_and_events.html#Simple%20Event
但是你已经说过你正在将 BindingList 传递给我假设的构造函数:
public class Form2
{
private BindingList<T> bindingList ;
public Form2(BindingList<T> bindingList)
{
this.bindingList = bindingList ;
}
public void button_Click(object sender, EventArgs e)
{
// Do bindingList.Add() or whatever
}
}
上面的不行吗?^^