2011-12-03 1 views
0

저는 Silverlight 응용 프로그램을 만들고 MVVM 패턴을 구현하고 있습니다. 내보기 모델에서 나는 RIA 서비스 도메인 클래스에서 데이터를 얻고 싶습니다. 다음 코드silverlight의 viewmodel에서 RIA 서비스의 데이터 가져 오기

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

통해 RIA 서비스 데이터를 반환되지만했지만 제 2 라인 디버거이 때문에 RIA 서비스 비동기 호출이다 날에 따른 엔티티 카운트 = 0

를 나타낸다. 리어 서비스 2 라인에서 데이터를 반환하기 전에 두 번째 라인이 실행됩니다. 이 두 줄을 어떻게 동기화시킬 수 있습니까? 로드 작업이 끝나면 두 번째 줄을 실행해야한다는 뜻입니다. 에서

답변

2

보기 모델 실버 라이트 코드에

[Query] 
public IQueryable<DimensionDTO> GetDimensionDTOs() 
{ 
    return this.ObjectContext.DimensionDTOs; 
} 

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