private void DialogController_Execute(object sender, DialogControllerAcceptingEventArgs e) { var dir = ((PersonaDireccion)View.CurrentObject).Direccion; if (e.AcceptActionArgs.SelectedObjects.Count < 1) { return; } var selectedLoc = (CPA.LocalidadResultItem)e.AcceptActionArgs.SelectedObjects[0]; var cps = CPA.ObtenerCPA(selectedLoc.Codigo, dir.Calle, dir.Numero); var collectionSource = new CollectionSource(ObjectSpace, typeof(CPA.CPAResultItem)); foreach (var cp in cps) { collectionSource.Add(cp); } var view = Application.CreateListView(Application.GetListViewId(typeof(CPA.CPAResultItem)), collectionSource, false); view.Editor.AllowEdit = false; e.AcceptActionArgs.ShowViewParameters.CreatedView = view; e.AcceptActionArgs.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; e.AcceptActionArgs.ShowViewParameters.Context = TemplateContext.PopupWindow; var dc = Application.CreateController <DialogController>(); e.AcceptActionArgs.ShowViewParameters.Controllers.Add(dc); dc.Tag = selectedLoc; dc.SaveOnAccept = false; dc.Accepting += CPAResultItem_DialogController_Accepting; //Truco para forzar la apertura de la view; por lo visto es la unica forma de encadenar dos Popup views Application.ShowViewStrategy.ShowView(e.AcceptActionArgs.ShowViewParameters, new ShowViewSource(Frame, e.AcceptActionArgs.Action)); }