静态对象再接再力(使数据和界面无关)
使用静态的委托事件,可以让用户接口无类在哪个界面上都可以
调用静态类的对象.
下面是我声明的事件数据对象
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);
}
是不是有写多此一举,直接掉用静态类不就可以了吗?
其实这里我只是想说明如何让数据和界面分开,在事件数据中可以放置如很多东西,
而且不会混淆概念.
源代码
多按几下write可以或的不同数据,输入ID,和FieldValue,按WriteClass
可以修改参数.