MVVM中的WebService调用

时间:2013-07-09 13:07:38

标签: c# wpf mvvm-light

我正在使用MVVM Light Toolkit在WPF中开发简单的应用程序。我有两种观点:

  • HomeView(默认)
  • CustomersView

这是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构造函数中?

1 个答案:

答案 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>();
    }
}