【WPF高仿 Windows记事本】开发日记 (三) 完善所有菜单的命令绑定并创建Models层的设计

在这里插入图片描述

前言

作者:浪子花梦,一个有趣的程序员 ~
在上一文中我们只将帮助菜单完成了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 中进行命令绑定,类似于上一文中帮助菜单中是一样的:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42100963/article/details/107540472