使用WCF服务实现MMVM的最佳实践是什么?视图模型将与服务进行通信。假设在一个视图中,我有3-4个数据显示模块。所有这些模块的信息都来自不同的WCF服务调用。如果我同步这样做,我有一种感觉,视图模型中的数据将需要时间来加载。
我希望异步调用所有这些服务方法,而不是等待第一个调用返回。做这件事的好方法是什么?
发布于 2011-08-10 22:10:46
我认为最好的方法是异步调用服务,然后在Complete方法上赋值,如下所示:
class TestViewModel : ViewModelBase
{
private ObservableCollection<string> data;
public ObservableCollection<string> Data
{
get { return data; }
set
{
if (value == data) return;
data = value;
RaisePropertyChanged("Data");
}
}
public TestViewModel()
{
GetDataClient proxy = new GetDataClient();
System.EventHandler<GetDataCompletedEventArgs> Client_GetDataCompleted = null;
Client_GetDataCompleted = (s, e) =>
{
if (e.Error == null && e.Result != null)
{
Data = new ObservableCollection<SelectionItem<string>>(e.Result));
}
proxy.GetDataCompleted -= Client_GetDataCompleted;
};
proxy.GetDataCompleted += Client_GetDataCompleted;
proxy.GetDataAsync();
}
}https://stackoverflow.com/questions/6943419
复制相似问题