gpt4 book ai didi

mvvm - viewModel vs model 谁负责与业务层通信?

转载 作者:行者123 更新时间:2023-12-03 10:24:51 24 4
gpt4 key购买 nike

wpf 和 MVVM 的新手。我有点困惑什么属于什么。

假设我们有一个带有 btnSave 的 View 。

保存时谁负责调用业务层?

我的理解是 Model 只是持有属性而没有方法
ViewModel 实际上是在实现 EG "DelegateCommand SaveCommand 并因此调用业务层。
但是有人告诉我,调用业务层实际上是模型的责任。

示例取自 msdn 上的 josh smith

从那里提取

      public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(param => Save(),param => CanSave);
}
return _saveCommand;
}
}

/// <summary>
/// Saves the customer to the repository. This method is invoked by the SaveCommand.
/// </summary>
private void Save()
{
if (!_customer.IsValid)
throw new InvalidOperationException(Strings.CustomerViewModel_Exception_CannotSave);

if (this.IsNewCustomer)
_customerRepository.AddCustomer(_customer);

base.OnPropertyChanged("DisplayName");
}

非常感谢您的意见。

最佳答案

该模型通常被认为是业务层的一部分,如果不是全部的话。因此,ViewModel 应该调用 Model(业务层)中的方法。

关于mvvm - viewModel vs model 谁负责与业务层通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2276289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com