【发布时间】:2013-07-09 13:07:38
【问题描述】:
我正在使用 MVVM Light Toolkit 在 WPF 中开发简单的应用程序。我有两种看法:
- 主页视图(默认)
- 客户视图
这是 MainViewModel 类的一部分:
public MainViewModel()
{
CurrentViewModel = Bootstrapper.Instance.Container.Resolve<HomeViewModel>();
}
private void ExecuteShowCustomersCommand()
{
CurrentViewModel = Bootstrapper.Instance.Container.Resolve<CustomersViewModel>();
}
在 CustomerViewModel 我有财产:
public ObservableCollection<Customers> Customers
{
get { return _customers; }
set
{
if (_customers == value) return;
_customers = value;
RaisePropertyChanged(CustomersPropertyName);
}
}
我的问题是,我应该什么时候调用 Web 服务来获取客户数据?在 CustomerViewModel 构造函数中?
【问题讨论】:
-
在我们的应用程序中,当 _customers 为空时,我们在第一次调用时将异步服务调用放入客户的 getter 中。你不应该把逻辑放在构造函数中。
-
为什么不应该把逻辑放在构造函数中?
-
构造函数是一种非常简单的接受参数并构造对象的方法。最好在其中包含最少的逻辑。可以参考Framework设计指导:msdn.microsoft.com/en-us/library/ms229060.aspx
标签: c# wpf mvvm-light