【发布时间】:2020-06-19 09:38:22
【问题描述】:
我目前正在学习 WPF 和 MVVM,因此我决定创建一个示例应用程序。
据我所知,模型用于后端。例如。如果您将“Spaghetti”作为模型,它将具有“名称”、“颜色”、“长度”等属性。它遵循 1:1 的关系
视图模型用于前端,因此视图将使用您添加到视图模型的内容。例如显示 Spaghetti 不同名称的列表。
我正在尝试从数据库中读取数据并将所有意大利面条名称显示到视图中。我已经设法做到了,但我觉得我错过了 MVVM 的目标,因为我完成它的方式不需要模型。
代码如下:
MainWindow.xaml.cs
public partial class MainWindow : Window
{
MainWindowSpaghettiViewModel vm = new MainWindowSpaghettiViewModel();
Service businessLogic = new Service();
public MainWindow()
{
InitializeComponent();
vm.SpaghettiNameCollection = businessLogic.GetSpaghettiNames();
DataContext = vm;
}
}
型号:Spaghetti.cs
public class Spaghetti
{
public string Name { get; set; }
public double Length { get; set; }
public string Colour { get; set; }
public decimal Price { get; set; }
}
查看模型:MainWindowSpaghettiViewModel.cs
public class MainWindowSpaghettiViewModel
{
public List<string> SpaghettiNameCollection { get; set; }
}
业务逻辑层:Service.cs
public class Service : IService
{
DBHelper db = new DBHelper();
public List<string> GetSpaghettiNames()
{
return db.GetSpaghettiNames();
}
}
数据访问层:DBHelper.cs 使用 select 语句返回意大利面条名称列表。
我是否正确地处理了这个问题,因为我之前看到过其他人直接从数据库填充视图模型属性的示例?
应用程序将如何流动?例如,在这个窗口中,我希望用户从我刚刚创建的列表中选择他们想要了解更多信息的意大利面条的名称。
选择意大利面条后,他们会转到下一个窗口,在那里他们可以看到有关意大利面条的所有信息(如模型中的属性)。我是只创建一个具有相同属性的新 ViewModel 并执行上面所做的操作,还是填充模型然后从中填充 ViewModel?
【问题讨论】: