c# wpf mvvm modal-dialog prism

c# - ¿Puedo configurar el modo de ajuste de texto para un mensaje de texto largo para transferir el texto a la siguiente línea en Prism 6.2? diálogo modal?



wpf mvvm (1)

Puede mostrar cualquier vista que desee dentro de PopupWindowAction , simplemente agregue contenido a PopupWindowAction :

<prism:InteractionRequestTrigger SourceObject="{Binding NotificationRequest, Mode=OneWay}"> <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True"> <prism:PopupWindowAction.WindowContent> <views:MyFancyErrorPopup/> </prism:PopupWindowAction.WindowContent> </prism:PopupWindowAction> </prism:InteractionRequestTrigger>

Ahora MyFancyErrorPopup puede mostrar su mensaje de error como un cuadro de texto multilínea o lo que quiera ...

EDITAR:

<UserControl x:Class="ClientModule.Views.MyFancyErrorPopup" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutoWireViewModel="True" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <StackPanel Orientation="Vertical"> <TextBlock Text={Binding Message}" TextWrapping="Wrap"/> <Button Content="Ok" Command="{Binding OkCommand}"/> </StackPanel> </UserControl> class MyFancyErrorPopupViewModel : BindableBase, IInteractionRequestAware { public MyFancyErrorPopupViewModel() { OkCommand = new DelegateCommand( OnOk ); } public DelegateCommand OkCommand { get; } public string Message { get { return (_notification?.Content as string) ?? "null"; } } #region IInteractionRequestAware public INotification Notification { get { return _notification; } set { SetProperty( ref _notification, value as Notification ); OnPropertyChanged( () => Message ); } } public Action FinishInteraction { get; set; } #endregion #region private private Notification _notification; private void OnOk() { FinishInteraction(); } #endregion }

A veces, el texto del mensaje de notificación para el diálogo modal es muy largo, como se puede ver en la figura a continuación. Esto no es un diálogo modal personalizado, sino un diálogo modal de notificación simple que tiene un mensaje de texto muy largo. Este es el mensaje de error de excepción producido por la biblioteca de protocolo MODBUS que uso en mi aplicación. Pero las excepciones de SQL Server también pueden tener mensajes de texto tan largos sobre errores. De forma predeterminada, el diálogo de notificación modal de Prism 6.2 muestra un texto no envuelto. Como resultado de ello, el diálogo modal es muy largo y no todo el texto del mensaje de error se coloca y se muestra en el cuadro de diálogo. A continuación se muestra el marcado XAML para este diálogo modal:

<prism:InteractionRequestTrigger SourceObject="{Binding NotificationRequest, Mode=OneWay}"> <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True"/> </prism:InteractionRequestTrigger>

Y debajo está el código de Ver modelo C # para este diálogo:

public InteractionRequest<INotification> NotificationRequest { get; private set; } public String NotificationStatus { get { return this._notificationStatus; } set { SetProperty(ref this._notificationStatus, value); } }

La siguiente línea de código es del constructor de View Modal:

this.NotificationRequest = new InteractionRequest<INotification>();

Y el siguiente es un método que muestra el cuadro de diálogo de notificación modal:

private void raiseNotification(string message, string caption) { this.NotificationRequest.Raise( new Notification { Content = message, Title = caption }, n => { this.NotificationStatus = "The user was notified."; }); }

¿Puedo configurar el modo de ajuste de texto para un mensaje de texto largo (en XAML o en Ver modelo) para transferir el texto a las siguientes líneas en Prism 6.2. diálogo modal?