在MVC中执行三步过程

时间:2010-11-24 17:45:55

标签: vb.net model-view-controller

嘿设计模式专家 -

我正在尝试在VB.NET GUI中构建一个四步过程。应用程序将对象从AppA传输到AppB。

该应用程序将遵循以下步骤:

  1. 用户在GUI中构造一般查询以识别要传输的AppA对象。
  2. 模型获取queryResults,View中的datagrid列出每个结果
  3. 用户取消选择不转移到AppB的项目
  4. 模型转移所选项目
  5. 我是MVC的新手,我正在试图弄清楚它应该如何运作。我已经在模型中实现了以下功能,但是不知道MVC方式将它们绑定到我的GUI中:

    Function getQueryResults(queryParams) as Items 
    Function transferItems(items)
    

    我是否将Items数据结构保留在模型中?

    如何在不在视图中构建逻辑的情况下从Items数据结构中删除取消选择?

    上述两个功能都需要时间,我如何设计允许我使用BackgroundWorker模型的功能呢?

    谢谢

1 个答案:

答案 0 :(得分:0)

请注意我是C#而不是VB dev,但无论如何都应该以相同的方式工作。

认为你的观点真的非常愚蠢。

你的观点根本不应该有任何逻辑。每当它看到用户做某事(比如取消选择项目)时,它应该告诉控制器。每当控制器希望Gui显示新内容时,它应该告诉视图这样做。通常在视图和控制器之间或模型和视图之间存在主题/观察者模式,以便视图在事情发生时自动更新或通知控制器。

在这种情况下,想象一下像这样的对话。

  • V:嘿,C,我该展示什么?
  • C:你走了。有一个模型。 M,请装上你的物品。
  • M:当然,老板......你去了。顺便说一句,任何人都在观看,我只是改变了。
  • V:哦,看,模特改变了。我想我应该展示那些物品。
  • C:现在等待用户输入。
  • V:嘿C,有人刚从列表中取消选择此值。
  • C:是吗?凉。 M,请从您的商品列表中删除该值。
  • M:好的。顺便说一句,任何人都在观看,我只是改变了。
  • V:哦,看,模特改变了。我应该重装这些物品。
  • V:嘿,C,现在有人点击了这个按钮。
  • C:很好。 M,请转移物品。
  • M:当然,老板。顺便说一句,任何人都在观看,我只是改变了。
  • V:哦,看,模特改变了。现在它说它忙...我为此显示“处理”栏。
  • M:好的,我们已经完成了。顺便说一句,任何人都在观看,我只是改变了。
  • V:哦,看,模特改变了。不再忙了。没有相关产品。没有处理。不管。

您可以将Items数据结构保留在域对象中,也可以将Items列表作为MVC用途的模型。

让它更像MVP或MVVM的好处是用模型周围的包装器呈现视图,为它提供它所需要的东西以及它所需要的东西 - 例如,你可以给它一个包装器其中包括物品,还有一个标志,表示当你的工人不在做什么时“忙”。

希望这有帮助。