You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Prism.Commands;
using Prism.Mvvm;
using Prism.Services.Dialogs;
using StartServerWPF.Models;
using StartServerWPF.Modules.Main.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace StartServerWPF.Modules.Main.ViewModels
{
public class AddWorkAreaDialogViewModel : BindableBase, IDialogAware
{
public AddWorkAreaDialogViewModel()
{
}
private string _title = "添加工区";
public string Title => _title;
public event Action<IDialogResult> RequestClose;
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed() { }
public void OnDialogOpened(IDialogParameters parameters)
{
var _type = parameters.GetValue<int>("type");
}
private string _workAreaName;
public string WorkAreaName
{
get => _workAreaName;
set { SetProperty(ref _workAreaName, value); }
}
private string _workAreaPath;
public string WorkAreaPath
{
get => _workAreaPath;
set { SetProperty(ref _workAreaPath, value); }
}
public DelegateCommand FilePathSaveCommand=> new(()=>
{
System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
fbd.ShowNewFolderButton = true;
if(string.IsNullOrEmpty(WorkAreaName))
{
MessageBox.Show("工区名称不能为空");
return;
}
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string path = Path.Combine(fbd.SelectedPath, WorkAreaName);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
WorkAreaPath = path;
}
});
public ICommand ConfirmCommand
{
get => new DelegateCommand(() =>
{
// 确认操作
// 数据校验关键字段不能为空、年龄做数字区间的校验、做UserName的唯一检查自定义特性检查
if (string.IsNullOrEmpty(WorkAreaName) || string.IsNullOrEmpty(WorkAreaPath))
{
MessageBox.Show("工区名称和目录不能为空", "提示", MessageBoxButton.OK);
return;
}
if (MessageBox.Show("确认修改?", "参数设置", MessageBoxButton.OKCancel,
MessageBoxImage.Exclamation) == MessageBoxResult.OK)
{
var dialog = new DialogResult(ButtonResult.OK);
Workareas workareas = new Workareas();
workareas.workareaname = WorkAreaName;
workareas.filepath = WorkAreaPath;
dialog.Parameters.Add("param1", workareas);
RequestClose?.Invoke( dialog);
}
});
}
public ICommand CancelCommand
{
get => new DelegateCommand(() =>
{
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
});
}
}
}