expressappframework-118549-app-shell-and-base-infrastructure-dialogs-and-notifications-text-notifications.md
In XAF applications, you can display a message box with a detailed notification text using the ShowViewStrategyBase.ShowMessage method.
XAF uses the DevExpress WinForms and ASP.NET Core Blazor components and widgets to show the notifications for WinForms and ASP.NET Core Blazor applications.
Blazor applications support the following notification API:
You can choose one of the three available notification types listed in the WinMessageType enumeration for a WinForms application:
AlertThe notification is displayed using the Alert Window.ToastThe notification window is displayed using the Toast Notification Manager. Used only in Windows 8 or later.FlyoutThe notification window is displayed using the Flyout Dialog.
To display a “Success” message when a user clicks the platform-independent Mark Completed Action, use the ShowMessage(MessageOptions) method. The MessageOptions class contains both the platform-agnostic and platform-specific settings of a text notification.
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using YourSolutionName.Module.BusinessObjects;
namespace YourSolutionName.Module.Controllers {
public class DemoTaskController : ViewController {
public DemoTaskController() {
TargetObjectType = typeof(DemoTask);
TargetViewType = ViewType.Any;
SimpleAction markCompletedAction = new SimpleAction(
this, "MarkCompleted",
DevExpress.Persistent.Base.PredefinedCategory.RecordEdit) {
TargetObjectsCriteria =
(CriteriaOperator.Parse("Status != ?", MySolution.Module.BusinessObjects.TaskStatus.Completed)).ToString(),
ConfirmationMessage =
"Are you sure you want to mark the selected task(s) as 'Completed'?",
ImageName = "State_Task_Completed"
};
markCompletedAction.SelectionDependencyType = SelectionDependencyType.RequireMultipleObjects;
markCompletedAction.Execute += (s, e) => {
foreach (DemoTask task in e.SelectedObjects) {
task.DueDate = DateTime.Now;
task.Status = MySolution.Module.BusinessObjects.TaskStatus.Completed;
View.ObjectSpace.SetModified(task);
}
View.ObjectSpace.CommitChanges();
View.ObjectSpace.Refresh();
MessageOptions options = new MessageOptions();
options.Duration = 2000;
options.Message = string.Format("{0} task(s) have been successfully updated!", e.SelectedObjects.Count);
options.Type = InformationType.Success;
options.Web.Position = InformationPosition.Right;
options.Win.Caption = "Success";
options.Win.Type = WinMessageType.Toast;
options.OkDelegate = () => {
IObjectSpace os = Application.CreateObjectSpace(typeof(DemoTask));
DetailView newTaskDetailView = Application.CreateDetailView(os, os.CreateObject<DemoTask>());
Application.ShowViewStrategy.ShowViewInPopupWindow(newTaskDetailView);
};
Application.ShowViewStrategy.ShowMessage(options);
};
}
}
}
ASP.NET Core Blazor Windows Forms
Important
Use the WinMessageOptions.ImageOptions property to change the default image of the WinForms notifications the Toast or Alert control displays:
Use the WinShowViewStrategyBase class’s CustomGetFlyoutBackColor event to change the Flyout Dialog‘s color:
Use the WinShowViewStrategyBase class’s CustomizeAlertControl event to customize the Alert control:
Use the WinShowViewStrategyBase class’s CustomizeToastNotificationsManager to access the Toast Notification Manager instance:
You can localize the notification button captions using the Model Editor. Navigate to the Localization | DialogButtons node, choose the OK or Cancel node and set a particular string to the Value property. Note that this setting also applies to other dialog buttons.