You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
3.1 KiB
87 lines
3.1 KiB
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; } |
|
/// <summary> |
|
/// 构造:创建一个带有子页面的模板,并指定子窗口标题,并指定右侧按钮事件内容 |
|
/// </summary> |
|
/// <param name="vm">子页面</param> |
|
/// <param name="windowTitle">子窗口标题</param> |
|
/// <param name="Function">事件内哦那个</param> |
|
public BaseControlVM(BaseViewModel vm, string windowTitle, ICommand Function) |
|
{ |
|
Content = vm; |
|
WindowTitle = windowTitle; |
|
CloseCommand = new RelayCommand(CloseVM); |
|
} |
|
|
|
/// <summary> |
|
/// 构造:创建一个带有子页面的模板,并指定子窗口标题 |
|
/// </summary> |
|
/// <param name="vm">子页面</param> |
|
/// <param name="windowTitle">子窗口标题</param> |
|
public BaseControlVM(BaseViewModel vm, string windowTitle) |
|
{ |
|
Content = vm; |
|
WindowTitle = windowTitle; |
|
CloseCommand = new RelayCommand(CloseVM); |
|
} |
|
/// <summary> |
|
/// 构造:创建一个带有子页面的模板 |
|
/// </summary> |
|
/// <param name="vm"></param> |
|
public BaseControlVM(BaseViewModel vm) |
|
{ |
|
Content = vm; |
|
CloseCommand = new RelayCommand(CloseVM); |
|
} |
|
|
|
/// <summary> |
|
/// 关闭并退回至上一个页面 |
|
/// </summary> |
|
/// <param name="parameter"></param> |
|
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(); |
|
} |
|
|
|
} |
|
|
|
} |