0

我要表格。

首先有 datagridview 和BindingList<CustomObject>as DataSource

DataSource其次应该从第一个表单中添加/删除/更新。

我怎样才能做到这一点?修改等发生在button_Click(object sender, EventArgs e)secondform 上。我可以传递BindignList<>给构造函数,但我不能进一步传递refSecondForms()button_Click()

4

1 回答 1

1

您可以做的是在 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

   } 
}

上面的不行吗?^^

于 2012-09-16T08:55:05.280 回答