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
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.