我正在使用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构造函数中?
答案 0 :(得分:0)
我会在viewmodel的构造函数中执行此操作,并使用IoC Container来获取实例。
申请开始
SimpleIoc.Default.Register<IDataService, DataService>();
SimpleIoc.Default.Register<MyViewModel>();
视图模型
public MyViewModel(IDataService DataService)
{
Mydata = DataService.GetData(); // Edit: Could also be done in a property with lazy load
}
定位
public MyViewModel MyVM
{
get
{
return SimpleIoc.Default.GetInstance<MyViewModel>();
}
}