从Silverlight视图模型中获取RIA服务的数据

时间:2011-12-03 08:22:57

标签: silverlight ria

我正在创建silverlight应用程序并实现MVVM模式。在我的视图模型中,我想从RIA服务域类中获取数据。通过以下代码

LoadOperation<DimensionDTO> loadOp = this.parametersDomainContext.Load(this.parametersDomainContext.GetDimensionDTOQuery());
List<DimensionDTO>  Dimensions = LoadOperation.Entities as List<DimensionDTO> ;

虽然RIA服务正在返回数据,但在第二行调试器中显示实体计数= 0

据我说这是因为RIA服务的异步调用。在从ria服务返回数据之前执行第二行。我怎样才能让这两条线同步。我的意思是在加载操作完成时应该执行第二行。

1 个答案:

答案 0 :(得分:2)

视图模型中的

[Query]
public IQueryable<DimensionDTO> GetDimensionDTOs()
{
  return this.ObjectContext.DimensionDTOs;
}
您的Silverlight代码中的

DomainService1 DS = new DomainService1();
LoadOperation<DimensionDTO> loadOp  = DS.Load(DS.GetDimensionDTOsQuery());
loadOp.Entities ; // for Assign to IEnumerable<DimensionDTO>

    loadOp.Completed += new EventHandler((s,e)=>{
      for(DimensionDTO item in loadOp.Entities )
      {
        // add entity to your list for  List<DimensionDTO>
      }
    });