2011-12-03 48 views
0

我正在創建Silverlight應用程序並實現MVVM模式。在我的視圖模型中,我想從RIA服務域類中獲取數據。通過下面的代碼從Silverlight的viewmodel中獲取RIA服務的數據

​​3210

雖然RIA服務被返回的數據,但在第二行調試器示出了根據我這是因爲RIA服務的異步調用的實體計數= 0

。在執行從ria服務第二行返回的數據之前。我如何使這兩條線同步。我的意思是第二行應該在加載操作完成時執行。

回答

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> 
     } 
    });