Unified logic

This commit is contained in:
Aigio Liu
2021-08-11 18:43:26 +08:00
parent f11e2341a1
commit 288eb16fd2
3 changed files with 10 additions and 16 deletions
@@ -79,7 +79,7 @@ namespace System.Application.Services.Implementation
dialogWindowViewModel.OK = ReactiveCommand.Create(() =>
{
dialogWindowViewModel.DialogResult = true;
if (dialogWindowViewModel.CanClose())
if (dialogWindowViewModel.OnOKClickCanClose())
{
window.Close();
}
@@ -90,10 +90,7 @@ namespace System.Application.Services.Implementation
dialogWindowViewModel.Cancel = ReactiveCommand.Create(() =>
{
dialogWindowViewModel.DialogResult = false;
if (dialogWindowViewModel.CanClose())
{
window.Close();
}
window.Close();
});
}
}
@@ -14,19 +14,16 @@ namespace System.Application.UI.ViewModels
public ICommand? Cancel { get; set; }
/// <summary>
/// 当前是否可以关闭窗口
/// 当点击确定时是否可以关闭窗口
/// </summary>
/// <returns></returns>
public virtual bool CanClose()
public virtual bool OnOKClickCanClose()
{
if (this is ITextBoxWindowViewModel viewModel_p)
if (this is ITextBoxWindowViewModel viewModel_tb)
{
if (DialogResult)
if (!viewModel_tb.InputValidator()) // 文本框弹窗输入验证不通过时不能关闭
{
if (!viewModel_p.InputValidator()) // 文本框弹窗输入验证不通过时不能关闭
{
return false;
}
return false;
}
}
return true;
@@ -130,10 +130,10 @@ namespace System.Application.Services.Implementation
}
d.GetButton((int)DialogButtonType.Positive).Click += (_, _) =>
{
if (viewModel is ITextBoxWindowViewModel viewModel_p)
if (viewModel is ITextBoxWindowViewModel viewModel_tb)
{
viewModel_p.Value = binding.tbPassword.Text;
if (viewModel_p.InputValidator())
viewModel_tb.Value = binding.tbPassword.Text;
if (viewModel_tb.InputValidator())
{
d.Dismiss();
tcs.TrySetResult(true);