using System;
using System.Windows;
using BetterGenshinImpact.Helpers.Ui;
using AddTaskNodeDialogViewModel = BetterGenshinImpact.ViewModel.Windows.GearTask.AddTaskNodeDialogViewModel;
namespace BetterGenshinImpact.View.Windows.GearTask;
public partial class AddTaskNodeDialog
{
public AddTaskNodeDialogViewModel ViewModel { get; }
public AddTaskNodeDialog(string taskType)
{
ViewModel = new AddTaskNodeDialogViewModel(taskType);
DataContext = ViewModel;
InitializeComponent();
ViewModel.RequestClose += OnRequestClose;
this.SourceInitialized += OnSourceInitialized;
}
private void OnSourceInitialized(object? sender, EventArgs e)
{
// 应用与主窗口相同的背景主题
WindowHelper.TryApplySystemBackdrop(this);
}
private void OnRequestClose(object? sender, bool result)
{
DialogResult = result;
Close();
}
///
/// 显示添加任务对话框
///
/// 任务类型
/// 父窗口
/// 如果用户点击确定返回ViewModel,否则返回null
public static AddTaskNodeDialogViewModel? ShowDialog(string taskType, Window? owner = null)
{
var dialog = new AddTaskNodeDialog(taskType);
if (owner != null)
{
dialog.Owner = owner;
}
var result = dialog.ShowDialog();
return result == true ? dialog.ViewModel : null;
}
}