c# - MVC 文本编辑器场景中模型的作用

标签 c# c++ user-interface

我正在设计一个电影脚本编辑文本编辑器,目的是为了好玩,并尝试学习一些有关低级 UI 设计的知识。剧本的格式非常简单,并且按照长期以来的标准仅使用 12pt courier 编写。所以我觉得设计一个编辑器会相当简单,只有一种字体和字体大小,没有特殊的格式。

我热衷于保留语义信息——例如,我希望将场景标题存储为场景标题,而不仅仅是作为场景标题格式的文本。

应用程序因脚本中所需的更改跟踪而变得更加复杂。附加页面的顶部应该有修订信息,因此文档需要存储为一组页面,并带有适当的信息来标识修订。

将文档作为独立于 View 的对象,然后根据 View 中的输入调用文档对象的方法来添加文本等似乎是有意义的。但是,哪个对象负责分页?起初我猜我会说文档,但分页似乎是一种演示文稿。文档使用图形文本 API 来测量字符串并计算出它们占用了多少空间也没有意义。但是,如果由 View 决定,这在理论上可能会与它在文档中的存储方式发生冲突。那么最好的解决方案是什么?

我在编程方面有丰富的经验,但对从头开始绘制自己的用户控件的细节知之甚少。我也有意避免将它与特定语言联系起来,但我很可能会用 C# 或 C++ 编写。

感谢您的宝贵时间。

最佳答案

IMO 的 View 或模型都不负责分页。这是 MVC 范例中 Controller 的工作。当然,您会有一些东西在 View 中表示寻呼机,但 Controller 的实际工作是控制将多少记录发送到 View 。

当然pager类本身是一个模型,但是它的实例化应该在 Controller 中。

关于c# - MVC 文本编辑器场景中模型的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648238/

相关文章:

c# - 搜索并删除列表中的重复项

c++ - 在 C++ 中嵌入 Lua : Accessing C++ created through Lua, 回到 C++(或将结果从 Lua 返回到 C++)

powershell - Powershell GUI导入的文本文件缺少换行符/回车符

user-interface - 无需拖放即可快速创建用户界面的最佳语言?

c# - NSubstitute 中的 TargetInvocationException

c# - 使用 $.getJson 方法从 jquery 调用 c# mvc Controller 方法

c# - Open XML 如何在 Excel 中以编程方式对工作表进行分组(移位选择)

c++ - 关于从字符数组转换为字符串的问题 - C++

java - 在 java 和 c++ 之间使用 Socket 进行 IPC 的优缺点是什么?

ios - 更改 UIView 边框的形状