WinForm应用程序框架设计之WinAction(新增数据)
我们来先看看WinAction的新增数据的流程:
源码参考:
public virtual void NewEntityHandler(object entity, object caller, object sender, EventArgs e)
{
//判断编辑窗体是否已打开
Form eForm = CallEditForm(caller);
if (eForm is IEditDataForm)
{
IEditDataForm mEditForm = eForm as IEditDataForm;
if (eForm.Visible)
{
if (mEditForm.Entity is Entity && (mEditForm.Entity as Entity).IsNewEntity)//新增时再次进行新增
{
CommonFunctions.SetFormTop(eForm);
return;
}
if (caller is IDataControlActionView)//修改时进行新增
UnloadEditEntityEvent(caller as IDataControlActionView);
}
LoadEditForm(EditForm);
}
T mEntity = GetNewEntity();
if (mEntity is Entity)
(mEntity as Entity).IsNewEntity = true;
if (eForm is IBindEntityAware)
(eForm as IBindEntityAware).BindEntity(mEntity);
if (caller is IDataListView && (caller as IDataListView).DataList is IList)
((caller as IDataListView).DataList as IList).Add(mEntity);
if (caller is IDataControlActionView)
LoadEditEntityEvent(caller as IDataControlActionView);
if (eForm.Visible)
CommonFunctions.SetFormTop(eForm);
else
eForm.Show();
}
{
//判断编辑窗体是否已打开
Form eForm = CallEditForm(caller);
if (eForm is IEditDataForm)
{
IEditDataForm mEditForm = eForm as IEditDataForm;
if (eForm.Visible)
{
if (mEditForm.Entity is Entity && (mEditForm.Entity as Entity).IsNewEntity)//新增时再次进行新增
{
CommonFunctions.SetFormTop(eForm);
return;
}
if (caller is IDataControlActionView)//修改时进行新增
UnloadEditEntityEvent(caller as IDataControlActionView);
}
LoadEditForm(EditForm);
}
T mEntity = GetNewEntity();
if (mEntity is Entity)
(mEntity as Entity).IsNewEntity = true;
if (eForm is IBindEntityAware)
(eForm as IBindEntityAware).BindEntity(mEntity);
if (caller is IDataListView && (caller as IDataListView).DataList is IList)
((caller as IDataListView).DataList as IList).Add(mEntity);
if (caller is IDataControlActionView)
LoadEditEntityEvent(caller as IDataControlActionView);
if (eForm.Visible)
CommonFunctions.SetFormTop(eForm);
else
eForm.Show();
}
原创作品出自努力偷懒,转载请说明文章出处:http://blog.csdn.net/kfarvid或 http://www.cnblogs.com/kfarvid/