using System.Windows;
using System.Windows.Input;
using HandyControl.Controls;
using SparkClient.Model.Helper;
using SparkClient.ViewModel.Grading;
using MessageBox = SparkClient.Views.Dialog.MessageBox;
namespace SparkClient.ViewModel.BaseWindow;
public class BaseControlVM : BaseViewModel
{
string _windowTitle;
private Visibility _showFunctionButton;
private string _functionButtonIcon;
private Object _viewContent;
public string WindowTitle { get { return _windowTitle; } set { _windowTitle = value; OnPropertyChanged("WindowTitle"); } }
public Visibility ShowFunctionButton { get { return _showFunctionButton; } set { _showFunctionButton = value; OnPropertyChanged("ShowFunctionButton"); } }
public string FunctionButtonIcon { get { return _functionButtonIcon; } set { _functionButtonIcon = value; OnPropertyChanged("FunctionButtonIcon"); } }
public Object ViewControl { get { return _viewContent; } set { _viewContent = value; OnPropertyChanged("ViewControl"); } }
public object Content { get; }
public ICommand CloseCommand { get; }
///
/// 构造:创建一个带有子页面的模板,并指定子窗口标题,并指定右侧按钮事件内容
///
/// 子页面
/// 子窗口标题
/// 事件内哦那个
public BaseControlVM(BaseViewModel vm, string windowTitle, ICommand Function)
{
Content = vm;
WindowTitle = windowTitle;
CloseCommand = new RelayCommand(CloseVM);
}
///
/// 构造:创建一个带有子页面的模板,并指定子窗口标题
///
/// 子页面
/// 子窗口标题
public BaseControlVM(BaseViewModel vm, string windowTitle)
{
Content = vm;
WindowTitle = windowTitle;
CloseCommand = new RelayCommand(CloseVM);
}
///
/// 构造:创建一个带有子页面的模板
///
///
public BaseControlVM(BaseViewModel vm)
{
Content = vm;
CloseCommand = new RelayCommand(CloseVM);
}
///
/// 关闭并退回至上一个页面
///
///
public void CloseVM(object parameter)
{
if(Content is GradingResultVM)
{
bool isSaved = (Content as GradingResultVM).isSaved;
if (isSaved) {
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
}
else {
MessageBox message = new MessageBox();
MessageBoxResult result = message.ShowAsk(MultilingualHelper.getString("DiamodResultCloseConfirm"));
if (MessageBoxResult.OK.Equals(result))
{
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
}
}
}
else
{
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
}
}
}