前言
作者:浪子花梦,一个有趣的程序员 ~
在上一文中我们只将帮助菜单完成了MVVM模式的搭建,此文将完善其它菜单的业务逻辑搭建,并且完成 MVVM 中的Models 搭建 . . .
前文如下所示:
【WPF高仿 Windows记事本】开发日记 (一) UI布局与 帮助菜单 功能实现
【WPF高仿 Windows记事本】开发日记 (二) 初步使用 MVVM 模式设计 帮助菜单 的三个命令
1)创建 Models 层的数据类:
所有 ViewModels中的类(业务逻辑层),都将对此类进行操作,此类代表着文本区域 . . .
.
.
2)创建各个菜单的业务逻辑类,主要用于创建命令:
.
.
3)主窗口业务逻辑中实例各个菜单的类,并将 DocumentModel类作为参数传递:
4)在每一个菜单(文件、编辑、格式、查看)中定义各种需要的命令,例如文件菜单中的命令如下所示:
class FileViewModel
{
public FileViewModel(DocumentModel documentModel)
{
DocumentModel = documentModel;
NewCommand = new RelayCommand(OnNewCommand);
NewWindowCommand = new RelayCommand(OnNewWindowCommand);
OpenCommand = new RelayCommand(OnOpenCommand);
SaveCommand = new RelayCommand(OnSaveCommand);
SaveAsCommand = new RelayCommand(OnSaveAsCommand);
PageSetupCommand = new RelayCommand(OnPageSetupCommand);
PrintCommand = new RelayCommand(OnPrintCommand);
ExitCommand = new RelayCommand(OnExitCommand);
}
private void OnExitCommand()
{
throw new NotImplementedException();
}
private void OnPrintCommand()
{
throw new NotImplementedException();
}
private void OnPageSetupCommand()
{
throw new NotImplementedException();
}
private void OnSaveAsCommand()
{
throw new NotImplementedException();
}
private void OnSaveCommand()
{
throw new NotImplementedException();
}
private void OnOpenCommand()
{
throw new NotImplementedException();
}
private void OnNewWindowCommand()
{
throw new NotImplementedException();
}
private void OnNewCommand()
{
throw new NotImplementedException();
}
public DocumentModel DocumentModel { get; }
public RelayCommand NewCommand { get; }
public RelayCommand NewWindowCommand { get; }
public RelayCommand OpenCommand { get; }
public RelayCommand SaveCommand { get; }
public RelayCommand SaveAsCommand { get; }
public RelayCommand PageSetupCommand { get; }
public RelayCommand PrintCommand { get; }
public RelayCommand ExitCommand { get; }
}
我们先将需要的命令准备好,以后再慢慢实现它的功能 . . .
.
.
5)在 XAML 中进行命令绑定,类似于上一文中帮助菜单中是一样的: