using Prism.Commands; using Prism.Mvvm; using Prism.Dialogs; using System; namespace HelloWorld.Dialogs { public class DialogViewModelBase : BindableBase, IDialogAware { private DelegateCommand _closeDialogCommand; public DelegateCommand CloseDialogCommand => _closeDialogCommand ?? (_closeDialogCommand = new DelegateCommand(CloseDialog)); private string _title; public string Title { get { return _title; } set { SetProperty(ref _title, value); } } public DialogCloseListener RequestClose { get; } protected virtual void CloseDialog(string parameter) { var result = parameter?.ToLower() switch { "true" => ButtonResult.OK, "false" => ButtonResult.Cancel, _ => ButtonResult.None }; //RequestClose.Invoke(new DialogResult(result)); RequestClose.Invoke(result); } public virtual bool CanCloseDialog() { return true; } public virtual void OnDialogClosed() { } public virtual void OnDialogOpened(IDialogParameters parameters) { } } }