静态对象再接再力(使数据和界面无关)


使用静态的委托事件,可以让用户接口无类在哪个界面上都可以
调用静态类的对象.
下面是我声明的事件数据对象
public class PersistentEventArgs :EventArgs
 {
       public PersistentObject pobject;
  public PersistentEventArgs(PersistentObject perobject)
  {
   this.pobject = perobject;
  }
 }
同时再类中声明委托事件
public delegate  void PrintClassEventHandler(object source,PersistentEventArgs args);
public static event PrintClassEventHandler OnPrintClass;
在类中声明静态的函数
public static void PrintClass()
{
   
   if (OnPrintClass != null)
 OnPrintClass(null,new PersistentEventArgs(PersistentObject.persistentObject));
}
现在我们可以在界面上直接吊用对象了,在form初始化时,添加对象事件
PersistentObject.OnPrintClass += new PersistentMemoryObject.PersistentObject.PrintClassEventHandler(PersistentObject_OnPrintClass);
在事件函数中的代码
pClassLists.Items.Clear();
 foreach (ParameterClass pclass in args.pobject.classes)
  {
    //将具体的内容写入ListView;
    ListViewItem item = new ListViewItem(new string[]{pclass.ID,pclass.Field1,pclass.Filed2,pclass.Field3});
    pClassLists.Items.Add(item);
  }
是不是有写多此一举,直接掉用静态类不就可以了吗?
其实这里我只是想说明如何让数据和界面分开,在事件数据中可以放置如很多东西,
而且不会混淆概念.
源代码
persistent.gif
多按几下write可以或的不同数据,输入ID,和FieldValue,按WriteClass
可以修改参数.

原文地址:https://www.cnblogs.com/wanghualiang/p/218817.html