【问题标题】:Use MVC instead of MVVM in Windows Presentation Foundation在 Windows Presentation Foundation 中使用 MVC 而不是 MVVM
【发布时间】:2016-03-08 02:10:45
【问题描述】:

我最近开始学习 Windows 生态系统(C#、.NET、WPF 和 XAML),正如预期的那样,这是一个完全不同的世界。我想从一开始就开始做的一件事是按照 MVVM 模式创建我的应用程序,因为它似乎是 WPF 应用程序的标准;我一直在为初学者寻找好的教程,到目前为止,我还没有找到一个逐步展示如何实现 MVVM 的教程。

我做了一点 iOS 编程,所以我习惯了 MVC 模式,我想知道为 WPF 应用程序遵循相同的设计模式是否有意义。

这就是我想按照MVC 模式构建我的代码的方式。

Model - Data Classes
View  - MainWindow.xaml
Controller - MainWindow.xaml.cs 

你们觉得上面的文件结构有什么问题吗?

使用MVVM 的主要好处是什么?我对数据绑定有点困惑,这似乎与WPF 中的MVVM 模式非常紧密。

谢谢

【问题讨论】:

  • Mainwindow.xaml 和 MainWindow.xaml.cs 是同一个类,所以你真的有一个模型和一个视图。这就是 MFC 中的 Document/DocumentView。坚持使用 MVVM。你管 MVVM 教程。

标签: c# .net wpf xaml mvvm


【解决方案1】:

我会使用 MainView.cs 作为调用 MainWindow.xaml.cs 中的方法的视图,也使用 MainController.cs 并使用 MainWindow.xaml.cs 调用 MainController.cs 类中的方法。当您使用 IController 和 IView (Interfaces) 从 View 和 Controller 中拆分 MainWindow 时,您可以更轻松地移植它。所以:

MainWindow.xaml 只是布局文件。

接口:

  • IView
  • 控制器

类:

  • MainWindow.xaml.cs 使用 IView
  • MainController.cs 使用 IController
  • MainView.cs 使用 IView
  • 模型.cs

用法: 如果例如单击按钮 MainWindow.xaml.cs 从 MainController 调用方法。 如果你想更新例如您调用 MainView 的文本视图正在调用 MainWindow.xaml.cs。 如果你然后端口到例如Android 你必须创建一个使用 IView 的新类,而不是调用 MainWindow.xaml.cs 来更新文本视图。您还可以使用这个新类来调用 MainController 中的方法。

编辑:

IController 只是在我的特殊情况下需要,因为通过 tcp Connection 我使用另一个 Controller 类,所以您可能只需要使用一些 iview 接口。

【讨论】:

  • 非常感谢您的建议。
猜你喜欢
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 2014-04-13
  • 1970-01-01
  • 2011-09-05
  • 2012-10-17
相关资源
最近更新 更多