Files
Prism/e2e/Wpf/HelloWorld/Dialogs/DialogViewModelBase.cs

52 lines
1.3 KiB
C#

using Prism.Commands;
using Prism.Mvvm;
using Prism.Dialogs;
using System;
namespace HelloWorld.Dialogs
{
public class DialogViewModelBase : BindableBase, IDialogAware
{
private DelegateCommand<string> _closeDialogCommand;
public DelegateCommand<string> CloseDialogCommand =>
_closeDialogCommand ?? (_closeDialogCommand = new DelegateCommand<string>(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)
{
}
}
}