- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在考虑一种架构,以支持对同一对象的多个 View 和编辑器。一个要求是提交或取消对整个对象所做的更改的可能性。
我们的要求是- 同时编辑大量对象(在多选模式下最多 10.000 个)- 同时有多个 View 和编辑器- 编辑器对对象的更改应该只在成功提交后反射(reflect)在其他 View 中- 编辑器中的对象作为一个整体应该是可提交/可取消的
我们已经了解了几个概念,包括动态包装方法 ( http://www.codeproject.com/KB/cs/dynamicobjectproxy.aspx#EditableProxy%28implementingIEditableObject%299 ),我们已经放弃了,因为- 没有动态智能感知- 没有动态编译时检查- 在遍历属性时访问属性(例如对于属性网格)非常昂贵
我们实现了图中的architectur原型(prototype)
每个编辑器都有自己的原始对象的克隆。然后它可以对其进行处理、验证并将其提交到 imodelrepository 中。这样做时,原始对象会更新,并且会为每个克隆发送一个 backendchanged 事件。其他编辑器的 View 模型注册了后端更改事件,现在获得新的克隆以反射(reflect)更改
积极的方面是:- imodelrepository 只输出克隆,禁止直接编辑原始文件- 每个编辑器都可以在自己的克隆上工作- 如果一个编辑提交更改,有一种方法可以通知其他克隆并更新那里的内容但消极方面是:- 每个编辑器/查看器 View 模型都必须查找在原始对象发生更改时发送的后端更改对象。然后它需要获得一个新的克隆并丢弃旧的- 此外,如果另一个编辑器删除了对象,则每个编辑器/查看器都必须查找对象删除事件。然后它需要丢弃它的克隆- 需要大量克隆,这会降低系统速度,尤其是对于同时编辑的大量对象
我们正在考虑将原件交给仅注册为查看器的 View 模型,并为真正的编辑器使用克隆。这将减少所需的克隆数量。但是没有办法保证给观众一个只读的原件(动态只读包装器会导致和上面提到的editableproxy一样的问题)
对于如何简化方法或不同架构的任何输入或想法,我将不胜感激
谢谢
最佳答案
如果可以同时打开同一个模型对象之上的多个编辑器,
然后等待提交更新其他人将违反直觉(*),
在这种情况下,我将为他们所有人使用相同的 VM,并让他们也编辑处于中间状态的对象,并使用全局提交来根据 VM 的更改更新存储库。
如果不能同时打开同一模型对象上的多个编辑器,
那么一次一个 VM(每个模型对象)应该可以。
您可以使用 T4s 为查看器生成只读 VM 类,它与原始 VM 类相同,只是没有属性 setter 。
(*) 例如使用可以更新名称,其他查看器/编辑器仍会显示旧名称,用户可以在两个不同的编辑器中将名称编辑为两个不同的值而无需提交。
如果提交了一个编辑器的更改,则在重新克隆期间可能会丢失其他编辑器中的更改。
关于c# - 同步多个 View 、编辑器和提交/取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909133/
我在尝试从子文件夹调用 View 时遇到一些错误。首先,这东西能用 Route::get('/', function() { return View::make('sample'); }); 但是当我
我有另一个 View 设置,并准备好等待其viewmodel。我的RelayCommand到达我的“当前” View 模型。从当前的 View 模型显示新 View 的最佳方法是什么? 我一直在阅读,
我有一个 bigquery View ,我想与数据分析师共享,以便他们可以通过 Data Studio 访问其数据。此共享 View 对另一个数据集中的私有(private) View 进行查询,而私
我有 3 个 View ,并希望将它们集成到一个 View 中,以便它们成为这一 View 中的子文件夹。 我怎样才能做到这一点?还是我必须制作一个 View ,然后再次手动添加和配置这些 View
我在沙发数据库中有一些文档,这些文档的字段是不同关联文档的ID数组: { associatedAssets: ["4c67f6241f4a0efb7dc2abc24a004dfe", "270f
我正在开发一个小实用程序 View ,它将嵌入到我们的几个应用程序中。它将位于一个公共(public)图书馆中。 我应该将其作为 ViewModel 以及默认的 View 实现公开,还是作为具有固定
由于我的某些 View 具有相似的功能,因此我希望能够与每个 View 共享相同的 View 模型。我的想法是将 token 传递给viewmodel的构造函数,但这将导致代码中出现许多if和else
我有一个目标 View (蓝色 View 和红色 View 用于左上角位置)。我试图用手指移动这个 View 。如果 View 不旋转,一切都很好。 但当我旋转 View 并移动时,第一次就很好了。但
我收到这个错误, "Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' on a
我将发布我目前拥有的源代码,然后解释我的问题。 这是我希望过渡发生的窗口 这是关联的 View 模型 public class MainViewModel {
我正在尝试找出我遇到的错误。最初,我的同事只是使用 将 View 添加到 subview 中 [self.view addSubview:someController.view]; 来自当前ViewC
我是 MVVM 的新手,需要一些帮助。 我的应用程序由许多不同的窗口组成,这些窗口显示允许用户编辑业务层中的数据的控件。 目前,每次用户打开这些窗口之一的新实例时,都会从头开始创建一个 ViewMod
我一直在寻找与我类似的问题以找到解决方案,但我真的找不到类似的东西。 我试图使用 asynctask 类从解析中下载帖子数组,在获取帖子后,它应该在我的页面中设置帖子数组,并执行 setAdapter
这个问题在这里已经有了答案: What is local/remote and no-interface view in EJB? (2 个答案) 关闭 9 年前。 我以前理解它的意思是“接口(in
希望这不会太困惑。 我有一个主视图 Controller ( MainView ),在 View 底部有一个堆栈 View ,在堆栈 View 中我有三个 View 。在一个 View 中(我们称之为
我一直在想这个问题,我真的不知道如何正确地将一个 View Controller 管理的 View 添加到另一个 View Controller 的 View 中。 这不起作用,因为 View 没有完
在明显的情况下,我必须将大量文件从一个 View 复制到另一个 View 。要复制的文件名将作为输入给出。有什么想法可以通过脚本实现吗? 谢谢,日语 最佳答案 最简单的方法是使用 clearfsimp
我正在使用完整日历。这里我的问题是,当单击上一个按钮或下一个按钮单击功能时,如何找到月 View 、周 View 或日 View 格式的完整日历。这里正在调用下一个和上一个按钮的自定义代码。因为使用这
我对这两者感到困惑,并试图找出差异,但没有得到我正在寻找的特定内容。 在哪里使用索引 View 而不是普通 View 。 它们之间的一些重要区别。 最佳答案 关键的区别在于物化 View 很好,物化了
我在一个 xib 中有一个 CustomView,在两个不同的 xib 中有两个不同的 View 。我想在一个 CustomeView 中依次显示这两个 View 。我有一个 NSView 对象,它连
我是一名优秀的程序员,十分优秀!