Skip to main content
All docs
V25.1
  • .NET Framework 4.6.2+

    ShowViewStrategyBase.ShowViewInPopupWindow(View, Action, Action, String, String, Frame, Action<ShowViewParameters>) Method

    Shows the specified View in a popup dialog with OK and Cancel buttons.

    Namespace: DevExpress.ExpressApp

    Assembly: DevExpress.ExpressApp.v25.1.dll

    NuGet Package: DevExpress.ExpressApp

    Declaration

    public void ShowViewInPopupWindow(
        View view,
        Action okDelegate = null,
        Action cancelDelegate = null,
        string okButtonCaption = null,
        string cancelButtonCaption = null,
        Frame sourceFrame = null,
        Action<ShowViewParameters> configureDelegate = null
    )

    Parameters

    Name Type Description
    view View

    A View to be displayed in the pop-up window.

    Optional Parameters

    Name Type Default Description
    okDelegate Action null

    A delegate method that is executed when the OK button is clicked.

    cancelDelegate Action null

    A delegate method that is executed when the Cancel button is clicked.

    okButtonCaption String null

    The caption of the OK button.

    cancelButtonCaption String null

    The caption of the Cancel button.

    sourceFrame Frame null

    A Frame from which the pop-up window is invoked.

    configureDelegate Action<ShowViewParameters> null

    A delegate method that allows you to configure View parameters before creating the pop-up window.

    Remarks

    The ShowViewInPopupWindow method displays a dialog that contains the specified View and two buttons - OK and Cancel. Both buttons close the dialog.

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using DevExpress.ExpressApp.DC;
    // ...
    public class MyDialogController : ViewController {
        public MyDialogController() {
            SimpleAction action = new SimpleAction(this, "Email", "View");
            action.Execute += Action_Execute;
        }
        private void Action_Execute(object sender, SimpleActionExecuteEventArgs e) {
            IObjectSpace objectSpace = Application.CreateObjectSpace<MyDialog>();
            MyDialog myDialogObject = objectSpace.CreateObject<MyDialog>()
            myDialogObject.Message = "Do you want to send an email?"
            Application.ShowViewStrategy.ShowViewInPopupWindow(dialogView,
                () => Application.ShowViewStrategy.ShowMessage("Done."),
                () => Application.ShowViewStrategy.ShowMessage("Cancelled."),
                null, null, this.Frame
            );
        }
    }
    
    [DomainComponent]
    public class MyDialog {
        public MyDialog(string message) {
            this.Message = message;
        }
        public string Message { get; private set; }
    }
    

    Advanced Example

    This code sample calls the ShowViewInPopupWindow method and accesses the following information inside the method implementation:

    • the initial view and its objects;
    • the pop-up view and its objects;
    • the ShowViewParameters and its objects;
    • the dialog controller for configuration.
    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using DevExpress.Persistent.Base;
    using MySolution.Module.BusinessObjects;
    namespace MySolution.Blazor.Server.Controllers;
    public class CustomBlazorController :ObjectViewController<DetailView, Contact> {
        public CustomBlazorController() {
            var myAction = new SimpleAction(this, "MyBlazorAction", PredefinedCategory.Edit);
            myAction.Execute += MyAction_Execute;
        }
        private void MyAction_Execute(object sender, SimpleActionExecuteEventArgs e) {
            var objectSpace = Application.CreateObjectSpace(typeof(Contact));
            var listView = Application.CreateListView(typeof(Contact), true);
            Application.ShowViewStrategy.ShowViewInPopupWindow(listView,
                () => {
                    var mainViewObject = ((Contact)View.CurrentObject);
                    var popupViewObjects = listView.SelectedObjects;
                    Application.ShowViewStrategy.ShowMessage($"The main view's current object is {mainViewObject.FirstName}. The number of selected objects in the pop-up view is: {popupViewObjects.Count}");
                },
                () => Application.ShowViewStrategy.ShowMessage("Cancelled."),
                null, null, this.Frame,
                (showViewParameters) => {
                    var dialogController = showViewParameters.Controllers.First(ctrl => ctrl is DialogController);
                    dialogController.AcceptAction.SelectionDependencyType = SelectionDependencyType.RequireSingleObject;
                }
            );
        }
    }
    

    You can also use PopupWindowShowAction to show a View in a pop-up window. For more information, refer to the following help topic: Add an Action that Displays a Pop-Up Window.

    See Also