【问题标题】:How to setup a WPF project in MVC format?如何以 MVC 格式设置 WPF 项目?
【发布时间】:2019-05-12 22:25:45
【问题描述】:

我一直在寻找更好地划分 WPF 项目的方法。到目前为止,这个例子对我来说最有意义(MVC 风格):

来源:https://www.codemag.com/Article/1201061/CODE-Framework-Writing-MVVM-MVC-WPF-Applications

所以我正在尝试找出最好的方法来以这种方式划分我的项目。似乎在 WPF 项目中默认为每个表单创建一个 .xaml 文件,然后在其中嵌套一个 .cs 文件(控制器?)。

问题:

  1. .xaml 文件是否总是“视图”?
  2. .xaml.cs 文件是否始终是“控制器”?
  3. 由于默认情况下在 WPF 结构中没有出现“模型”,因此我设置项目结构的步骤应该是这样的:
    a.) 将 .xaml 与其 .xaml.cs 文件分开。
    b.) 将分离的 .xaml 文件放在 Views 文件夹中
    c.) 将分离的 .xaml.cs 文件放在 Controllers 文件夹中
    d.) 创建一个模型文件夹
    e.) 在 Models 文件夹中创建新类,我们放在控制器文件夹中的 .xaml.cs 控制器文件将使用该类。

这看起来准确吗?我正在努力构建最适合面试的代码,所以我很感激任何建议。

【问题讨论】:

  • 1) 是 2) 不是。实际上 .cs 是完全可选的,可以删除 3a) 可选 3b) 如果你想要 3d) 如果你想要 3e) 可能。好吧,如果你要去面试,我怀疑你会用 MVC 方法失败。通常 WPF 是 MVVM 而不是 MVC
  • @MickyD 是对的,MVC 在 ASP.NET 上更好。在 WPF 上,您应该使用 MVVM。

标签: c# wpf model-view-controller


【解决方案1】:

.xaml 文件是否总是“视图”?'

是的。

.xaml.cs 文件是否总是“控制器”?

没有。这是视图的代码隐藏文件。默认情况下,它调用编译器生成的InitializeComponent() 方法来加载在.xaml 文件中定义的XAML 标记。请参阅this thread 了解更多信息。 .xaml 中的标记和.xaml.cs 中的代码是同一视图的部分类。他们属于同一个人。

a.) 将 .xaml 与其 .xaml.cs 文件分开。

没有。由于上述原因,这没有任何意义。

b.) 将分离的 .xaml 文件放入 Views 文件夹中

您可以将视图放在单独的文件夹中,但这也包括 .xaml.cs 文件。

c.) 将分离的 .xaml.cs 文件放入 Controllers 文件夹中

没有。这里没有“控制器”的概念。

d.) 创建一个模型文件夹

当然。

e.) 在 Models 文件夹中创建将由 .xaml.cs 文件使用的新类

这是一个选项,但您通常会创建一个视图模型类来引用模型并公开视图绑定到的属性。请参阅this blog post 了解有关模型-视图-视图模型 (MVVM) 设计模式的一些基本介绍,这是在开发基于 XAML 的 UI 应用程序时推荐使用的设计模式。如果您使用 Google 或 Bing 搜索,您会找到更多信息和示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多