できることは、form1 がサブスクライブする form2 にイベントを作成することです。物事を別々に保つ。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
}
}
上記は機能しませんか?^^