private static DetailView CreateDetailView(DetailView detailView, object o, ListView listView, DashboardViewItem dashboardViewItem, Frame frame) { var objectTypeLink = ((IModelApplicationMasterDetail)detailView.Model.Application).DashboardMasterDetail .ObjectTypeLinks .FirstOrDefault(link => { if (link.ModelClass.TypeInfo.Type == o.GetType()) { var fitForCriteria = listView.ObjectSpace.IsObjectFitForCriteria(o, CriteriaOperator.Parse(link.Criteria)); return(!fitForCriteria.HasValue || fitForCriteria.Value); } return(false); }); if (objectTypeLink != null) { detailView.Close(); dashboardViewItem.Frame.SetView(null); var application = dashboardViewItem.Frame.Application; var objectSpace = application.CreateObjectSpace(); detailView = application.CreateDetailView(objectSpace, objectTypeLink.DetailView.Id, true, dashboardViewItem.InnerView); dashboardViewItem.Frame.SetView(detailView, true, frame); } detailView.CurrentObject = detailView.ObjectSpace.GetObject(o); return(detailView); }
/// <summary> /// 计划转订单 /// </summary> private void plantomanubill_Execute(object sender, PopupWindowShowActionExecuteEventArgs e) { try { DetailView dv = e.PopupWindow.View as DetailView; if (dv != null) { StudentPersistent sp = dv.CurrentObject as StudentPersistent; if (sp != null) { IObjectSpace ios = Application.CreateObjectSpace(); ListView lvconvertbill = Application.CreateListView("Student_ListView_CheckBox", new CollectionSource(ios, typeof(Student)), false); e.ShowViewParameters.CreatedView = lvconvertbill; e.ShowViewParameters.Context = TemplateContext.PopupWindow; e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; SaveAndCancelAction dc = new SaveAndCancelAction(); dc.btnconvertbillsave.Execute += Btnconvertbillsave_Execute; dc.btnconvertbillcancel.Execute += Btnconvertbillcancel_Execute; e.ShowViewParameters.Controllers.Add(dc); dv.Close(); } } } catch (Exception ex) { } }
private static DetailView CreateDetailView(this IModelMasterDetailViewObjectTypeLink objectTypeLink, DetailView detailView, DashboardViewItem dashboardViewItem, Frame frame) { detailView.Close(); dashboardViewItem.Frame.SetView(null); var application = dashboardViewItem.Frame.Application; var objectSpace = application.CreateObjectSpace(); detailView = application.CreateDetailView(objectSpace, objectTypeLink.DetailView.Id, true, dashboardViewItem.InnerView); dashboardViewItem.Frame.SetView(detailView, true, frame); return(detailView); }