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(); } } }