其中一个是wpf中MVVM模式的良好实践
本文关键字:模式 MVVM 一个 wpf | 更新日期: 2023-09-27 18:05:23
我想通过使用MVVM模式开发我的wpf项目。我应该创建新的文件夹来分离模型,视图,ViewModel或为每个创建新项目吗?哪一个是好的练习?我下载了样本项目,有些项目有单独的文件夹,有些项目有单独的项目。我提到了这个链接。但这并不能澄清我的怀疑。我在问是否为模型,视图和视图模型创建新项目是良好的实践还是创建新文件夹?
这是一个重复的问题,你可以在Sheridan的回答中找到最有帮助的答案。
基本上,你需要确定项目的总体规模是多少。如果您计划重用片段,您可能希望使用多个项目和不同级别的文件夹。如果您计划将应用程序的一部分作为API提供,那么您可能需要使用多个项目。
对于初学者,我建议你从小处开始,把所有的事情放在一个项目中。要学习MVVM,不要关注项目结构,而是关注WPF和MVVM是如何工作的。在了解了MVVM的工作原理后,可以随时重新访问解决方案结构。
编辑
答案是否定的,你永远不需要为你的项目创建文件夹或单独的项目。请注意,在不同的文件夹下创建新的class
也将使用该路径作为名称空间。因此,如果您创建一个ViewModels
文件夹并添加一个class
到该文件夹,您将看到namespace WpfApplication1.ViewModels
在顶部。这也意味着您必须注意XAML文件中名称空间的位置。如果您想在XAML文件中引用ViewModels
文件夹中的类型,则需要执行类似<xmlns:vm="clr-namespace:WpfApplication1.ViewModels">
的操作。缺点是,如果您在ViewModels
中有文件夹,则还需要在XAML中引用该名称空间。因此,如果有ViewModels> Basics,您将需要XAML中的两个名称空间,因为您不能在一个xmlns声明中引用所有子目录。
<xmlns:vm="clr-namespace:WpfApplication1.ViewModels">
<xmlns:vmBasics="clr-namespace:WpfApplication1.ViewModels.Basics">
另一种选择是使用文件夹并将类名称空间重命名为普通的旧namespace WpfApplication1
,然后您只需要一个xmlns声明,就可以访问应用程序中的所有类型。
<xmlns:app="clr-namespace:WpfApplication1">
所以,如果不需要,不要把事情复杂化;通常情况下,在学习阶段没有什么东西会如此复杂,以至于需要多个项目。文件夹是可选的,但要了解使用它们的副作用/解决方法。
这取决于您的用例。您是否有这样的场景:您的视图、视图模型和模型可能在其他项目中被单独重用?我的意思是,例如,您是否有这样一个场景,您将只在其他项目中使用您的模型。如果是,那么创建单独的项目是有意义的,这样它们可以被重用。如果不是这样,那么最好将它们全部保存在一个项目中。
文件夹仅用于创建结构并便于识别。其实没有必要为View和ViewModel设置文件夹
我通常会创建每个文件夹的视图,ViewModel等。然后,我将给视图和viewModels类提供描述性的名称。如果你有几个页面,我建议有子文件夹。所有都在一个项目中。但这是我的偏好。
,
查看>>销售WelcometoSalesPageView.xaml
ViewModel>>销售WelcometoSalesPageViewModel.vb