.net - View 和 View 模型关系

标签 .net wpf silverlight mvvm

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

3年前关闭。




Improve this question




我的问题是:

  • 可以/应该ViewModel支持多个Views ?
  • 可以/应该View被多个ViewModels支持? (我相信这个问题的答案是肯定的)。

  • 对于相对较小的模块,您的 View 相对较小的这种情况的最佳做法是什么。所以,在那种情况下,我们应该创建多个 ViewModels对于每个 View ,或者我们应该使用单个 ViewModel为同一模块中的所有 View 提供服务。注意:较小模块中的 View 数量限制为 5-6。

    最佳答案

    这是我对此的看法——

  • 是的,同一个 ViewModel 可以用于多个 View ;例如说你有一个CustomerViewModel有了客户的详细信息和一些命令,您可以将此 ViewModel 与具有 DataGrid 的 View 一起使用显示所有客户(因此将使用 ObservableCollection<CustomerViewModel>)并使用相同的 ViewModel 和具有表单的 View 来编辑单个客户的详细信息。
  • 这取决于,但通常没有 .如果一个 View 包含多个 View ,则它可以依赖于多个 ViewModel;比如说,一个具有多个 View 的窗口。例如具有客户列表的仪表板、添加新客户的表单、显示产品的部分等;
    但是 即使在这种情况下,最好创建一个包含其他 subview 模型实例的父 View 模型。

    我总是喜欢为单个 View 使用一个 ViewModel,并尝试以这种方式设计我的应用程序。

  • 但是是的,这一切都取决于应用程序以及您如何设计 View 和 View 模型。在 MVVM 中,您首先根据业务逻辑设计模型和 View 模型,然后将它们与您的 View 一起使用。

    也看看这个类似的问题 - ViewModel per View or per Model?

    关于.net - View 和 View 模型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11027921/

    相关文章:

    c# - C# 和 javascript 中的正则表达式

    c# - 在 C# WinForms 应用程序中处理大量设置?

    c# - 不同项目(程序集)之间的反射(reflection)

    c# - 在运行时加载 XAML?

    c# - 命名 BackgroundWorker

    c# - XAML 设计未在 Visual Studio 中加载

    silverlight - 我将如何在 Silverlight/WP7 中实现实时绘图?

    c# - List<T> 实现 IQueryable<T>

    silverlight - 在 XAML 中将密码框中的文本居中

    wcf - Silverlight 4 中的 wshttpbinding 支持